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
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, }, }, )
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], }
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
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, }
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, }, }, )
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], }, }, }], )
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)
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": [] }, }, }], )
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], }, }, }], )
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], }, }, }], )
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": [], } }, }], )
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
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": [], }, }, }], )