Exemple #1
0
 def setUp(self) -> None:
     super().setUp()
     self.datastore_content = {
         get_fqfield("organisation/1/name"): "test_organisation_name",
         get_fqfield("organisation/1/committee_ids"): [5914213969],
     }
     self.user_id = 7668157706
Exemple #2
0
 def test_prepare_dataset_2(self) -> None:
     dataset = self.action.prepare_dataset(self.valid_payload_2)
     self.assertEqual(
         dataset["data"],
         [{
             "instance": self.valid_payload_2[0],
             "new_id": 42,
             "relations": {
                 get_fqfield("meeting/4002059810/topic_ids"): {
                     "type": "add",
                     "value": [42],
                 },
                 get_fqfield(f"mediafile/{self.attachments[0]}/attachment_ids"):
                 {
                     "type":
                     "add",
                     "value": [
                         get_fqid("topic/6259289755"),
                         get_fqid("topic/42"),
                     ],
                 },
                 get_fqfield(f"mediafile/{self.attachments[1]}/attachment_ids"):
                 {
                     "type": "add",
                     "value": [get_fqid("topic/42")]
                 },
             },
         }],
     )
 def test_nested_structured_relation(self) -> None:
     meeting_id = 222
     self.create_model("fake_model_a/333", {})
     self.create_model("fake_model_b/111", {"meeting_id": meeting_id})
     self.create_model("fake_model_c/444", {"foreign_key_field": 111})
     field = cast(
         fields.BaseRelationField,
         FakeModelC().get_field("structured_relation_field"),
     )
     relations_handler = SingleRelationHandler(
         datastore=self.datastore,
         field=field,
         field_name="structured_relation_field",
         instance={
             "id": 444,
             "structured_relation_field": 333
         },
     )
     result = relations_handler.perform()
     self.assertEqual(
         result,
         {
             get_fqfield("fake_model_a/333/fake_model_c_$_ids"): {
                 "type": "add",
                 "value": [str(meeting_id)],
                 "modified_element": str(meeting_id),
             },
             get_fqfield(f"fake_model_a/333/fake_model_c_${meeting_id}_ids"):
             {
                 "type": "add",
                 "value": [444],
                 "modified_element": 444,
             },
         },
     )
Exemple #4
0
 def setUp(self) -> None:
     super().setUp()
     self.user_id = 7668157706
     self.datastore_content = {
         get_fqfield("organisation/1/name"): "test_organisation_name",
         get_fqfield("organisation/1/committee_ids"): [5914213969],
     }
     self.action = CommitteeCreate(
         PermissionTestAdapter(superuser=self.user_id),
         DatabaseTestAdapter(datastore_content=self.datastore_content),
     )
 def test_generic_O2M_add(self) -> None:
     self.create_model("fake_model_a/1", {"fake_model_b_generic_om": 3})
     self.create_model("fake_model_a/2", {})
     self.create_model(
         "fake_model_b/3",
         {"fake_model_a_generic_mo": [get_fqid("fake_model_a/1")]})
     handler = RelationsHandler(
         database=self.datastore,
         model=FakeModelA(),
         id=2,
         field=FakeModelA.fake_model_b_generic_om,
         field_name="fake_model_b_generic_om",
         obj={"fake_model_b_generic_om": 3},
     )
     result = handler.perform()
     expected = {
         get_fqfield("fake_model_b/3/fake_model_a_generic_mo"): {
             "type": "add",
             "value":
             [get_fqid("fake_model_a/1"),
              get_fqid("fake_model_a/2")],
             "modified_element": get_fqid("fake_model_a/2"),
         }
     }
     assert result == expected
 def test_generic_M2M_add(self) -> None:
     self.set_models({
         "fake_model_a/1": {
             "fake_model_b_generic_mm": [3]
         },
         "fake_model_a/2": {},
         "fake_model_b/3": {
             "fake_model_a_generic_mm": ["fake_model_a/1"]
         },
     })
     handler = SingleRelationHandler(
         datastore=self.datastore,
         field=FakeModelA.fake_model_b_generic_mm,
         field_name="fake_model_b_generic_mm",
         instance={
             "id": 2,
             "fake_model_b_generic_mm": [3]
         },
     )
     result = handler.perform()
     expected = {
         get_fqfield("fake_model_b/3/fake_model_a_generic_mm"): {
             "type": "add",
             "value":
             [get_fqid("fake_model_a/1"),
              get_fqid("fake_model_a/2")],
             "modified_element": get_fqid("fake_model_a/2"),
         }
     }
     assert result == expected
 def test_generic_M2M_delete(self) -> None:
     self.set_models({
         "fake_model_a/1": {
             "fake_model_b_generic_mm": [2]
         },
         "fake_model_b/2": {
             "fake_model_a_generic_mm": ["fake_model_a/1"]
         },
     })
     handler = SingleRelationHandlerWithContext(
         datastore=self.datastore,
         field=FakeModelA.fake_model_b_generic_mm,
         field_name="fake_model_b_generic_mm",
         instance={
             "id": 1,
             "fake_model_b_generic_mm": []
         },
     )
     result = handler.perform()
     expected = {
         get_fqfield("fake_model_b/2/fake_model_a_generic_mm"): {
             "type": "remove",
             "value": [],
             "modified_element": get_fqid("fake_model_a/1"),
         }
     }
     assert result == expected
 def test_simple_structured_relation(self) -> None:
     meeting_id = 222
     self.create_model("fake_model_a/333", {})
     self.create_model("fake_model_b/111", {"meeting_id": meeting_id})
     field = cast(
         fields.BaseRelationField,
         FakeModelB().get_field("structured_relation_field"),
     )
     relations_handler = RelationsHandler(
         database=self.datastore,
         model=FakeModelB(),
         id=111,
         field=field,
         field_name="structured_relation_field",
         obj={"structured_relation_field": 333},
     )
     result = relations_handler.perform()
     self.assertEqual(
         result,
         {
             get_fqfield(f"fake_model_a/333/fake_model_b_{meeting_id}_ids"):
             {
                 "type": "add",
                 "value": [111],
                 "modified_element": 111,
             }
         },
     )
 def test_generic_O2O_delete(self) -> None:
     self.set_models({
         "fake_model_a/1": {
             "fake_model_b_generic_oo": 2
         },
         "fake_model_b/2": {
             "fake_model_a_generic_oo": "fake_model_a/1"
         },
     })
     handler = SingleRelationHandler(
         datastore=self.datastore,
         field=FakeModelA.fake_model_b_generic_oo,
         field_name="fake_model_b_generic_oo",
         instance={
             "id": 1,
             "fake_model_b_generic_oo": None
         },
     )
     result = handler.perform()
     expected = {
         get_fqfield("fake_model_b/2/fake_model_a_generic_oo"): {
             "type": "remove",
             "value": None,
             "modified_element": get_fqid("fake_model_a/1"),
         }
     }
     assert result == expected
 def xtest_generic_O2O_replace(self) -> None:
     self.create_model("fake_model_a/1", {})
     self.set_models({
         "fake_model_a/2": {
             "fake_model_b_generic_oo": 3
         },
         "fake_model_b/3": {
             "fake_model_a_generic_oo": "fake_model_a/2"
         },
     })
     handler = SingleRelationHandler(
         datastore=self.datastore,
         field=FakeModelA.fake_model_b_generic_oo,
         field_name="fake_model_b_generic_oo",
         instance={
             "id": 1,
             "fake_model_b_generic_oo": 3
         },
     )
     result = handler.perform()
     expected = {
         get_fqfield("fake_model_b/3/fake_model_a_generic_oo"): {
             "type": "add",
             "value": get_fqid("fake_model_a/1"),
             "modified_element": get_fqid("fake_model_a/1"),
         }
     }
     assert result == expected
 def setUp(self) -> None:
     self.valid_payload_1 = [{
         "committee_id": 5914213969,
         "name": "name_zusae6aD0a"
     }]
     self.datastore_content = {
         get_fqfield("committee/5914213969/meeting_ids"):
         [7816466305, 3908439961],
     }
Exemple #12
0
 def test_prepare_dataset_2(self) -> None:
     dataset = self.action.prepare_dataset(self.valid_payload_2)
     self.assertEqual(
         dataset["data"],
         [
             {
                 "instance": {
                     "id": self.valid_payload_2[0]["id"],
                     "meeting_id": None,
                     "agenda_item_id": None,
                     "attachment_ids": None,
                     "list_of_speakers_id": None,
                     "tag_ids": None,
                 },
                 "relations": {
                     get_fqfield("meeting/7816466305/topic_ids"): {
                         "type": "remove",
                         "value": [],
                     },
                 },
             },
             {
                 "instance": {
                     "id": self.valid_payload_2[1]["id"],
                     "meeting_id": None,
                     "agenda_item_id": None,
                     "attachment_ids": None,
                     "list_of_speakers_id": None,
                     "tag_ids": None,
                 },
                 "relations": {
                     get_fqfield("meeting/3611987967/topic_ids"): {
                         "type": "remove",
                         "value": [6375863023],
                     },
                     get_fqfield("mediafile/3549387598/attachment_ids"): {
                         "type": "remove",
                         "value": [],
                     },
                 },
             },
         ],
     )
 def setUp(self) -> None:
     self.datastore_content = {
         get_fqfield("meeting/7816466305/name"): "name_dei9iPh9fi",
         get_fqfield("meeting/9079236097/topic_ids"): [5756367535],
         get_fqfield("meeting/9079236097/agenda_item_ids"): [3393211712],
         get_fqfield("topic/1312354708/title"): "title_eeWa8oenii",
         get_fqfield("topic/1312354708/meeting_id"): 7816466305,
         get_fqfield("topic/5756367535/meeting_id"): 9079236097,
         get_fqfield("topic/5756367535/agenda_item_id"): 3393211712,
         get_fqfield("agenda_item/3393211712/meeting_id"): 9079236097,
         get_fqfield("agenda_item/3393211712/content_object_id"): "topic/5756367535",
     }
     self.valid_payload_create = [{"content_object_id": "topic/1312354708"}]
     self.valid_payload_update = [{"id": 3393211712, "duration": 3600}]
     self.valid_payload_delete = [{"id": 3393211712}]
     self.user_id = 5968705978
Exemple #14
0
 def test_prepare_dataset_5(self) -> None:
     dataset = self.action.prepare_dataset(self.valid_payload_5)
     self.assertEqual(
         dataset["data"],
         [{
             "instance": self.valid_payload_5[0],
             "relations": {
                 get_fqfield(f"mediafile/{self.attachments[0]}/attachment_ids"):
                 {
                     "type": "remove",
                     "value": []
                 },
                 get_fqfield(f"mediafile/{self.attachments[1]}/attachment_ids"):
                 {
                     "type": "add",
                     "value": [get_fqid("topic/6259289755")]
                 },
             },
         }],
     )
 def test_prepare_dataset_1(self) -> None:
     dataset = self.action.prepare_dataset(self.valid_payload_1)
     self.assertEqual(
         dataset["data"][0]["relations"],
         {
             get_fqfield("committee/5914213969/meeting_ids"): {
                 "type": "remove",
                 "value": [7816466305],
             },
         },
     )
 def setUp(self) -> None:
     self.valid_payload_1 = [{"id": 3908439961}]
     self.invalid_payload_1 = [
         {
             "id": 3908439961
         },
         {
             "id": 7816466305
         },
     ]
     self.datastore_content = {
         get_fqfield("meeting/3908439961/committee_id"):
         5914213969,
         get_fqfield("meeting/7816466305/committee_id"):
         5914213969,
         get_fqfield("committee/5914213969/meeting_ids"):
         [7816466305, 3908439961],
         get_fqfield("meeting/7816466305/topic_ids"): [1312354708],
         get_fqfield("topic/1312354708/meeting_ids"):
         7816466305,
     }
Exemple #17
0
 def test_prepare_dataset_1(self) -> None:
     dataset = self.action.prepare_dataset(self.valid_payload_1)
     instance = deepcopy(self.valid_payload_1[0])
     instance["last_modified"] = round(time.time())
     expected = [{
         "instance": instance,
         "relations": {
             get_fqfield("motion_category/8734727380/motion_ids"): {
                 "type": "remove",
                 "value": [],
             },
             get_fqfield("motion_block/4116433002/motion_ids"): {
                 "type": "remove",
                 "value": [],
             },
             get_fqfield("motion_block/4740630442/motion_ids"): {
                 "type": "add",
                 "value": [2995885358],
             },
         },
     }]
     self.assertEqual(dataset["data"], expected)
 def test_simple_structured_relation(self) -> None:
     meeting_id = 222
     self.set_models({
         "fake_model_a/333": {},
         "fake_model_b/111": {
             "meeting_id": meeting_id
         }
     })
     field = cast(
         fields.BaseRelationField,
         FakeModelB().get_field("structured_relation_field"),
     )
     relations_handler = SingleRelationHandler(
         datastore=self.datastore,
         field=field,
         field_name="structured_relation_field",
         instance={
             "id": 111,
             "structured_relation_field": 333
         },
     )
     result = relations_handler.perform()
     self.assertEqual(
         result,
         {
             get_fqfield("fake_model_a/333/fake_model_b_$_ids"): {
                 "type": "add",
                 "value": [str(meeting_id)],
                 "modified_element": str(meeting_id),
             },
             get_fqfield(f"fake_model_a/333/fake_model_b_${meeting_id}_ids"):
             {
                 "type": "add",
                 "value": [111],
                 "modified_element": 111,
             },
         },
     )
Exemple #19
0
 def test_prepare_dataset_1(self) -> None:
     dataset = self.action.prepare_dataset(self.valid_payload_1)
     result = dataset["data"]
     expected = [{
         "instance": self.valid_payload_1[0],
         "new_id": 42,
         "relations": {
             get_fqfield("meeting/2393342057/topic_ids"): {
                 "type": "add",
                 "value": [42],
             },
         },
     }]
     self.assertEqual(result, expected)
 def test_prepare_dataset_1(self) -> None:
     dataset = self.action.prepare_dataset(self.valid_payload_1)
     self.assertEqual(
         dataset["data"],
         [{
             "instance": self.valid_payload_1[0],
             "new_id": 42,
             "relations": {
                 get_fqfield("committee/5914213969/meeting_ids"): {
                     "type": "add",
                     "value": [7816466305, 3908439961, 42],
                 },
             },
         }],
     )
Exemple #21
0
 def test_prepare_dataset_2(self) -> None:
     dataset = self.action.prepare_dataset(self.valid_payload_2)
     instance = deepcopy(self.valid_payload_2[0])
     instance["last_modified"] = round(time.time())
     expected = [{
         "instance": instance,
         "relations": {
             get_fqfield("user/7268025091/supported_motion_5562405520_ids"):
             {
                 "type": "add",
                 "value": [2995885358],
             },
         },
     }]
     self.assertEqual(dataset["data"], expected)
Exemple #22
0
 def test_prepare_dataset_3(self) -> None:
     dataset = self.action.prepare_dataset(self.valid_payload_3)
     self.assertEqual(
         dataset["data"],
         [{
             "instance": self.valid_payload_3[0],
             "relations": {
                 get_fqfield(f"mediafile/{self.attachments[0]}/attachment_ids"):
                 {
                     "type": "remove",
                     "value": []
                 },
             },
         }],
     )
Exemple #23
0
 def test_prepare_dataset_3(self) -> None:
     dataset = self.action.prepare_dataset(self.valid_payload_3)
     self.assertEqual(
         dataset["data"],
         [{
             "instance": self.valid_payload_3[0],
             "new_id": 42,
             "relations": {
                 get_fqfield("meeting/3611987967/topic_ids"): {
                     "type": "add",
                     "value": [6375863023, 6259289755, 42],
                 },
             },
         }],
     )
Exemple #24
0
 def test_prepare_dataset_1(self) -> None:
     dataset = self.action.prepare_dataset(self.valid_payload_1)
     self.assertEqual(
         dataset["data"],
         [{
             "instance": self.valid_payload_1[0],
             "new_id": 42,
             "relations": {
                 get_fqfield("organisation/1/committee_ids"): {
                     "type": "add",
                     "value": [5914213969, 42],
                 },
             },
         }],
     )
Exemple #25
0
 def test_prepare_dataset_1(self) -> None:
     dataset = self.action.prepare_dataset(self.valid_payload_1)
     instance = deepcopy(self.valid_payload_1[0])
     instance["last_modified"] = round(time.time())
     self.assertEqual(
         dataset["data"],
         [{
             "instance": instance,
             "relations": {
                 get_fqfield("motion_statute_paragraph/8264607531/motion_ids"):
                 {
                     "type": "remove",
                     "value": [],
                 }
             },
         }],
     )
Exemple #26
0
 def test_O2M_empty(self) -> None:
     self.set_models({"fake_model_a/1": {}, "fake_model_b/2": {}})
     handler = SingleRelationHandlerWithContext(
         datastore=self.datastore,
         field=FakeModelA.fake_model_b_om,
         field_name="fake_model_b_om",
         instance={"id": 1, "fake_model_b_om": 2},
     )
     result = handler.perform()
     expected = {
         get_fqfield("fake_model_b/2/fake_model_a_mo"): {
             "type": "add",
             "value": [1],
             "modified_element": 1,
         }
     }
     assert result == expected
 def test_generic_O2O_empty(self) -> None:
     self.create_model("fake_model_a/1", {})
     self.create_model("fake_model_b/2", {})
     handler = RelationsHandler(
         database=self.datastore,
         model=FakeModelA(),
         id=1,
         field=FakeModelA.fake_model_b_generic_oo,
         field_name="fake_model_b_generic_oo",
         obj={"fake_model_b_generic_oo": 2},
     )
     result = handler.perform()
     expected = {
         get_fqfield("fake_model_b/2/fake_model_a_generic_oo"): {
             "type": "add",
             "value": get_fqid("fake_model_a/1"),
             "modified_element": get_fqid("fake_model_a/1"),
         }
     }
     assert result == expected
 def test_O2O_empty(self) -> None:
     self.create_model("fake_model_a/1", {})
     self.create_model("fake_model_b/2", {})
     handler = SingleRelationHandler(
         datastore=self.datastore,
         field=FakeModelA.fake_model_b_oo,
         field_name="fake_model_b_oo",
         instance={
             "id": 1,
             "fake_model_b_oo": 2
         },
     )
     result = handler.perform()
     expected = {
         get_fqfield("fake_model_b/2/fake_model_a_oo"): {
             "type": "add",
             "value": 1,
             "modified_element": 1,
         }
     }
     assert result == expected
 def test_M2M_delete(self) -> None:
     self.create_model("fake_model_a/1", {"fake_model_b_mm": [2]})
     self.create_model("fake_model_b/2", {"fake_model_a_mm": [1]})
     handler = SingleRelationHandler(
         datastore=self.datastore,
         field=FakeModelA.fake_model_b_mm,
         field_name="fake_model_b_mm",
         instance={
             "id": 1,
             "fake_model_b_mm": []
         },
     )
     result = handler.perform()
     expected = {
         get_fqfield("fake_model_b/2/fake_model_a_mm"): {
             "type": "remove",
             "value": [],
             "modified_element": 1,
         }
     }
     assert result == expected
Exemple #30
0
 def test_prepare_dataset_1(self) -> None:
     dataset = self.action.prepare_dataset(self.valid_payload_1)
     self.assertEqual(
         dataset["data"],
         [{
             "instance": {
                 "id": self.valid_payload_1[0]["id"],
                 "meeting_id": None,
                 "agenda_item_id": None,
                 "attachment_ids": None,
                 "list_of_speakers_id": None,
                 "tag_ids": None,
             },
             "relations": {
                 get_fqfield("meeting/7816466305/topic_ids"): {
                     "type": "remove",
                     "value": [],
                 },
             },
         }],
     )