aboutsummaryrefslogtreecommitdiffstats
path: root/python/tests/api_entity_editing.py
blob: 3c0baa8ec076c5ecb1cd0535033f2ed4ac56df1e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93

import json
import pytest
from copy import copy

from fatcat_client import *
from fatcat_client.rest import ApiException
from fixtures import *


def test_multiple_edits_same_group(api):

    c1 = CreatorEntity(display_name="test updates")

    # create
    eg = quick_eg(api)
    c1 = api.get_creator(api.create_creator(c1, editgroup=eg.id).ident)
    api.accept_editgroup(eg.id)

    # try multiple edits in the same group
    eg = quick_eg(api)
    c2 = CreatorEntity(display_name="left")
    c3 = CreatorEntity(display_name="right")
    edit = api.update_creator(c1.ident, c2, editgroup=eg.id)
    # should fail with existing
    with pytest.raises(fatcat_client.rest.ApiException):
        api.update_creator(c1.ident, c3, editgroup=eg.id)
    # ... but succeed after deleting
    api.delete_creator_edit(edit.edit_id)
    api.update_creator(c1.ident, c3, editgroup=eg.id)
    api.accept_editgroup(eg.id)
    res = api.get_creator(c1.ident)
    assert res.display_name == "right"
    eg = api.get_editgroup(eg.id)
    assert len(eg.edits.creators) == 1

    # cleanup
    eg = quick_eg(api)
    api.delete_creator(c1.ident)
    api.accept_editgroup(eg.id)


def test_edit_deletion(api):

    c1 = CreatorEntity(display_name="test edit updates")

    # create
    eg = quick_eg(api)
    c1 = api.get_creator(api.create_creator(c1, editgroup=eg.id).ident)
    api.accept_editgroup(eg.id)

    # try multiple edits in the same group
    c2 = CreatorEntity(display_name="update one")
    eg = quick_eg(api)
    eg = api.get_editgroup(eg.id)
    assert len(eg.edits.creators) == 0
    edit = api.update_creator(c1.ident, c2, editgroup=eg.id)
    eg = api.get_editgroup(eg.id)
    assert len(eg.edits.creators) == 1
    api.delete_creator_edit(edit.edit_id)
    eg = api.get_editgroup(eg.id)
    assert len(eg.edits.creators) == 0

    api.accept_editgroup(eg.id)
    res = api.get_creator(c1.ident)
    assert res.display_name == "test edit updates"
    eg = api.get_editgroup(eg.id)
    assert len(eg.edits.creators) == 0

    # cleanup
    eg = quick_eg(api)
    api.delete_creator(c1.ident)
    api.accept_editgroup(eg.id)


def test_empty_editgroup(api):
    eg = quick_eg(api)
    api.accept_editgroup(eg.id)


def test_delete_accepted_edit(api):

    c1 = CreatorEntity(display_name="test edit updates")

    # create
    eg = quick_eg(api)
    edit = api.create_creator(c1, editgroup=eg.id)
    api.accept_editgroup(eg.id)

    # try to delete
    with pytest.raises(fatcat_client.rest.ApiException):
        api.delete_creator_edit(edit.edit_id)