def test_create_unit_itsystem(self): self.load_sample_structures() # Check the POST request c = lora.Connector(virkningfra='-infinity', virkningtil='infinity') unitid = "b688513d-11f7-4efc-b679-ab082a2055d0" with self.subTest('preconditions'): self.assertRequestResponse( '/service/ou/{}/details/it?validity=past'.format(unitid), [], ) self.assertRequestResponse( '/service/ou/{}/details/it'.format(unitid), [], ) self.assertRequestResponse( '/service/ou/{}/details/it?validity=future'.format(unitid), [], ) self.assertEqual( list( c.organisationfunktion.get_all( funktionsnavn='IT-system', tilknyttedebrugere=unitid, )), [], ) funcid, = self.assertRequest( '/service/details/create', json=[ { "type": "it", "user_key": "root", "org_unit": { "uuid": unitid, }, "itsystem": { "uuid": "0872fb72-926d-4c5c-a063-ff800b8ee697" }, "validity": { "from": "2018-09-01", "to": None } }, ], ) self.assertRequestResponse( '/service/ou/{}/details/it?validity=past'.format(unitid), [], ) self.assertRequestResponse( '/service/ou/{}/details/it'.format(unitid), [], ) self.assertRequestResponse( '/service/ou/{}/details/it?validity=future'.format(unitid), [{ "itsystem": { "name": "Lokal Rammearkitektur", "reference": None, "system_type": None, "user_key": "LoRa", "uuid": "0872fb72-926d-4c5c-a063-ff800b8ee697", "validity": { "from": "2010-01-01", "to": None } }, "org_unit": { 'name': 'Samfundsvidenskabelige fakultet', 'user_key': 'samf', 'uuid': 'b688513d-11f7-4efc-b679-ab082a2055d0', 'validity': { 'from': '2017-01-01', 'to': None }, }, "person": None, "user_key": "root", "uuid": funcid, "validity": { "from": "2018-09-01", "to": None } }], )
def test_get_effects(self, m): URL = (settings.LORA_URL + 'organisation/organisationenhed?' 'uuid=00000000-0000-0000-0000-000000000000' '&virkningfra=2010-06-01T02%3A00%3A00%2B02%3A00' '&virkningtil=infinity') m.get( URL, complete_qs=True, json={ "results": [[{ "id": "00000000-0000-0000-0000-000000000000", "registreringer": [{ "tilstande": { "organisationenhedgyldighed": [{ "gyldighed": v, "virkning": { "from": mora_util.to_lora_time(t1, ), "from_included": True, "to": mora_util.to_lora_time(t2, ), "to_included": False } } for t1, t2, v in [ ('01-01-1950', '01-01-2100', 'Aktiv'), ('01-01-2100', '01-01-2300', 'Inaktiv'), ('01-01-2300', '01-01-2500', 'Aktiv'), ('01-01-2500', '01-01-2700', 'Inaktiv'), ('01-01-2700', '01-01-2900', 'Aktiv'), ('01-01-2900', '01-01-3100', 'Inaktiv'), ('01-01-3100', '01-01-3300', 'Aktiv'), ]] }, }] }]] }, ) c = lora.Connector(validity='future') self.assertEqual( [("2100-01-01 00:00:00+01:00", "2300-01-01 00:00:00+01:00", { "tilstande": { "organisationenhedgyldighed": [{ "gyldighed": "Inaktiv", "virkning": { "from_included": True, "to_included": False, "from": "2100-01-01T00:00:00+01:00", "to": "2300-01-01T00:00:00+01:00" } }] } }), ("2300-01-01 00:00:00+01:00", "2500-01-01 00:00:00+01:00", { "tilstande": { "organisationenhedgyldighed": [{ "gyldighed": "Aktiv", "virkning": { "from_included": True, "to_included": False, "from": "2300-01-01T00:00:00+01:00", "to": "2500-01-01T00:00:00+01:00" } }] } }), ("2500-01-01 00:00:00+01:00", "2700-01-01 00:00:00+01:00", { "tilstande": { "organisationenhedgyldighed": [{ "gyldighed": "Inaktiv", "virkning": { "from_included": True, "to_included": False, "from": "2500-01-01T00:00:00+01:00", "to": "2700-01-01T00:00:00+01:00" } }] } }), ("2700-01-01 00:00:00+01:00", "2900-01-01 00:00:00+01:00", { "tilstande": { "organisationenhedgyldighed": [{ "gyldighed": "Aktiv", "virkning": { "from_included": True, "to_included": False, "from": "2700-01-01T00:00:00+01:00", "to": "2900-01-01T00:00:00+01:00" } }] } }), ("2900-01-01 00:00:00+01:00", "3100-01-01 00:00:00+01:00", { "tilstande": { "organisationenhedgyldighed": [{ "gyldighed": "Inaktiv", "virkning": { "from_included": True, "to_included": False, "from": "2900-01-01T00:00:00+01:00", "to": "3100-01-01T00:00:00+01:00" } }] } }), ("3100-01-01 00:00:00+01:00", "3300-01-01 00:00:00+01:00", { "tilstande": { "organisationenhedgyldighed": [{ "gyldighed": "Aktiv", "virkning": { "from_included": True, "to_included": False, "from": "3100-01-01T00:00:00+01:00", "to": "3300-01-01T00:00:00+01:00" } }] } })], [(str(start), str(end), entry) for start, end, entry in c.organisationenhed.get_effects( '00000000-0000-0000-0000-000000000000', relevant={ 'tilstande': ('organisationenhedgyldighed', ), }, )], )
def test_create_employee_itsystem(self): self.load_sample_structures() # Check the POST request c = lora.Connector(virkningfra='-infinity', virkningtil='infinity') userid = "6ee24785-ee9a-4502-81c2-7697009c9053" with self.subTest('preconditions'): self.assertRequestResponse( '/service/e/{}/details/it?validity=past'.format(userid), [], ) self.assertRequestResponse( '/service/e/{}/details/it'.format(userid), [], ) self.assertRequestResponse( '/service/e/{}/details/it?validity=future'.format(userid), [], ) self.assertEqual( list( c.organisationfunktion.get_all( funktionsnavn='IT-system', tilknyttedebrugere=userid, )), [], ) funcid, = self.assertRequest( '/service/details/create', json=[ { "type": "it", "user_key": "goofy-moofy", "person": { "uuid": userid, }, "itsystem": { "uuid": "0872fb72-926d-4c5c-a063-ff800b8ee697" }, "validity": { "from": "2018-09-01", "to": None } }, ], ) self.assertRequestResponse( '/service/e/{}/details/it?validity=past'.format(userid), [], ) self.assertRequestResponse( '/service/e/{}/details/it'.format(userid), [], ) self.assertRequestResponse( '/service/e/{}/details/it?validity=future'.format(userid), [{ "itsystem": { "name": "Lokal Rammearkitektur", "reference": None, "system_type": None, "user_key": "LoRa", "uuid": "0872fb72-926d-4c5c-a063-ff800b8ee697", "validity": { "from": "2010-01-01", "to": None } }, "org_unit": None, "person": { "name": "Fedtmule", "uuid": "6ee24785-ee9a-4502-81c2-7697009c9053" }, "user_key": "goofy-moofy", "uuid": funcid, "validity": { "from": "2018-09-01", "to": None } }], )
def test_edit_leave_person(self): self.load_sample_structures() leave_uuid = self.assertRequest( '/service/details/create', json={ "type": "leave", "uuid": "3be0c325-83db-48cc-9d60-12d80993a3c8", "person": { "uuid": "53181ed2-f1de-4c4a-a8fd-ab358c2c454a", }, "leave_type": { 'uuid': "62ec821f-4179-4758-bfdf-134529d186e9", }, "user_key": "1234", "validity": { "from": "2017-01-01", }, }, amqp_topics={'employee.leave.create': 1}, ) with self.subTest('failing without any'): self.assertRequestFails( '/service/details/edit', 400, json={ "type": "leave", "uuid": leave_uuid, "data": { "person": { "uuid": "6ee24785-ee9a-4502-81c2-7697009c9053", }, "validity": { "from": "2018-01-01", }, }, }, amqp_topics={'employee.leave.create': 1}, ) # first, create an engagement for the other user self.assertRequest( '/service/details/create', json={ "type": "engagement", "uuid": "f1383b2d-d706-4c49-9249-20fa9ef7b55a", "person": {'uuid': "6ee24785-ee9a-4502-81c2-7697009c9053"}, "org_unit": {'uuid': "9d07123e-47ac-4a9a-88c8-da82e3a4bc9e"}, "job_function": { 'uuid': "3ef81e52-0deb-487d-9d0e-a69bbe0277d8"}, "engagement_type": { 'uuid': "62ec821f-4179-4758-bfdf-134529d186e9"}, "user_key": "1234", "validity": { "from": "2018-01-01", } }, amqp_topics={ 'employee.leave.create': 1, 'employee.engagement.create': 1, 'org_unit.engagement.create': 1, }, ) with self.subTest('failing too soon'): self.assertRequestFails( '/service/details/edit', 400, json={ "type": "leave", "uuid": leave_uuid, "data": { "person": { "uuid": "6ee24785-ee9a-4502-81c2-7697009c9053", }, "validity": { "from": "2017-06-01", }, }, }, amqp_topics={ 'employee.leave.create': 1, 'employee.engagement.create': 1, 'org_unit.engagement.create': 1, }, ) self.assertRequestResponse( '/service/details/edit', leave_uuid, json={ "type": "leave", "uuid": leave_uuid, "data": { "person": { "uuid": "6ee24785-ee9a-4502-81c2-7697009c9053", }, "validity": { "from": "2018-06-01", }, }, }, amqp_topics={ 'employee.leave.create': 1, 'employee.engagement.create': 1, 'org_unit.engagement.create': 1, 'employee.leave.update': 1, }, ) expected_users = [ { "uuid": "53181ed2-f1de-4c4a-a8fd-ab358c2c454a", "virkning": { "from_included": True, "to_included": False, "from": "2017-01-01 00:00:00+01", "to": "2018-06-01 00:00:00+02", } }, { "uuid": "6ee24785-ee9a-4502-81c2-7697009c9053", "virkning": { "from_included": True, "to_included": False, "from": "2018-06-01 00:00:00+02", "to": "infinity" } } ] c = lora.Connector(virkningfra='-infinity', virkningtil='infinity') actual_leave = c.organisationfunktion.get(leave_uuid) self.assertEqual( expected_users, actual_leave['relationer']['tilknyttedebrugere'], )
def load_sample_structures(*, verbose=False, minimal=False, check=False, delete=False): '''Inject our test data into LoRA. ''' orgid = '456362c4-0ee4-4e5e-a72c-751239745e62' if delete: c = lora.Connector() print('deleting', c.organisation.path, orgid, file=sys.stderr) c.organisation.delete(orgid) for scope, rel in ( (c.facet, 'ansvarlig'), (c.klasse, 'ansvarlig'), (c.organisationenhed, 'tilhoerer'), (c.organisationfunktion, 'tilknyttedeorganisationer'), (c.bruger, 'tilhoerer'), (c.itsystem, 'tilhoerer'), ): for objid in scope.fetch(**{rel: orgid}): print('deleting', scope.path, objid, file=sys.stderr) scope.delete(objid) fixtures = [( 'organisation/organisation', 'create_organisation_AU.json', orgid, )] units = { 'root': '2874e1dc-85e6-4269-823a-e1125484dfd3', } classes = { 'afdeling': '32547559-cfc1-4d97-94c6-70b192eff825', } facets = { 'enhedstype': 'fc917e7c-fc3b-47c2-8aa5-a0383342a280', 'adressetype': 'e337bab4-635f-49ce-aa31-b44047a43aa1', 'tilknytningstype': 'ef71fe9c-7901-48e2-86d8-84116e210202', } # TODO: add classifications, etc. functions = { 'engagement': 'd000591f-8705-4324-897a-075e3623f37b', 'tilknytning': 'c2153d5d-4a2b-492d-a18c-c498f7bb6221', 'rolle': '1b20d0b9-96a0-42a6-b196-293bb86e62e8', 'orlov': 'b807628c-030c-4f5f-a438-de41c1f26ba5', 'leder': '05609702-977f-4869-9fb4-50ad74c6999a', 'itsystem_user': '******', 'itsystem_unit': 'cd4dcccb-5bf7-4c6b-9e1a-f6ebb193e276', 'tilknyttetenhed_hist': 'daa77a4d-6500-483d-b099-2c2eb7fa7a76', 'tilknyttetenhed_hum': '5c68402c-2a8d-4776-9237-16349fc72648', } users = { 'andersand': '53181ed2-f1de-4c4a-a8fd-ab358c2c454a', 'fedtmule': '6ee24785-ee9a-4502-81c2-7697009c9053', } itsystems = { 'ad': '59c135c9-2b15-41cc-97c8-b5dff7180beb', 'lora': '0872fb72-926d-4c5c-a063-ff800b8ee697', } if not minimal: units.update({ 'hum': '9d07123e-47ac-4a9a-88c8-da82e3a4bc9e', 'samf': 'b688513d-11f7-4efc-b679-ab082a2055d0', 'fil': '85715fc7-925d-401b-822d-467eb4b163b6', 'hist': 'da77153e-30f3-4dc2-a611-ee912a28d8aa', 'frem': '04c78fc2-72d2-4d02-b55f-807af19eac48', }) classes.update({ 'fakultet': '4311e351-6a3c-4e7e-ae60-8a3b2938fbd6', 'institut': 'ca76a441-6226-404f-88a9-31e02e420e52', 'email': 'c78eb6f7-8a9e-40b3-ac80-36b9f371c3e0', 'telefon': '1d1d3711-5af4-4084-99b3-df2b8752fdec', 'adresse': '4e337d8e-1fd2-4449-8110-e0c8a22958ed', 'ean': 'e34d4426-9845-4c72-b31e-709be85d6fa2', 'medlem': '62ec821f-4179-4758-bfdf-134529d186e9', }) functions.update({ 'email_andersand': 'fba61e38-b553-47cc-94bf-8c7c3c2a6887', 'email_fedtmule': '64ea02e2-8469-4c54-a523-3d46729e86a7', 'adresse_fedtmule': 'cd6008bc-1ad2-4272-bc1c-d349ef733f52', 'adresse_root': '414044e0-fe5f-4f82-be20-1e107ad50e80', 'adresse_hum': 'e1a9cede-8c9b-4367-b628-113834361871', 'tlf_hum': '55848eca-4e9e-4f30-954b-78d55eec0473', 'ean_hum': 'a0fe7d43-1e0d-4232-a220-87098024b34d', }) for facetkey, facetid in facets.items(): fixtures.append(( 'klassifikation/facet', 'create_facet_{}.json'.format(facetkey), facetid, )) for classkey, classid in classes.items(): fixtures.append(( 'klassifikation/klasse', 'create_klasse_{}.json'.format(classkey), classid, )) for unitkey, unitid in units.items(): fixtures.append(( 'organisation/organisationenhed', 'create_organisationenhed_{}.json'.format(unitkey), unitid, )) for funckey, funcid in functions.items(): fixtures.append(( 'organisation/organisationfunktion', 'create_organisationfunktion_{}.json'.format(funckey), funcid, )) for userkey, userid in users.items(): fixtures.append(( 'organisation/bruger', 'create_bruger_{}.json'.format(userkey), userid, )) for itsystemkey, itsystemid in itsystems.items(): fixtures.append(( 'organisation/itsystem', 'create_itsystem_{}.json'.format(itsystemkey), itsystemid, )) for path, fixture_name, uuid in fixtures: if check: if lora.get(path, uuid): raise Exception('{} already exists at {}!'.format( uuid, path, )) else: load_fixture(path, fixture_name, uuid)
def test_terminate_leave(self): self.load_sample_structures() # Check the POST request c = lora.Connector(virkningfra='-infinity', virkningtil='infinity') userid = "53181ed2-f1de-4c4a-a8fd-ab358c2c454a" payload = { "validity": { "to": "2017-11-30" } } self.assertRequestResponse( '/service/e/{}/terminate'.format(userid), userid, json=payload, amqp_topics={ 'employee.address.delete': 1, 'employee.association.delete': 1, 'employee.engagement.delete': 1, 'employee.employee.delete': 1, 'employee.it.delete': 1, 'employee.leave.delete': 1, 'employee.manager.delete': 1, 'employee.role.delete': 1, 'org_unit.association.delete': 1, 'org_unit.engagement.delete': 1, 'org_unit.manager.delete': 1, 'org_unit.role.delete': 1, }, ) expected = { "note": "Afsluttet", "relationer": { "organisatoriskfunktionstype": [ { "uuid": "32547559-cfc1-4d97-94c6-70b192eff825", "virkning": { "from_included": True, "to_included": False, "from": "2017-01-01 00:00:00+01", "to": "infinity" } } ], "tilknyttedeorganisationer": [ { "uuid": "456362c4-0ee4-4e5e-a72c-751239745e62", "virkning": { "from_included": True, "to_included": False, "from": "2017-01-01 00:00:00+01", "to": "infinity" } } ], "tilknyttedebrugere": [ { "uuid": "53181ed2-f1de-4c4a-a8fd-ab358c2c454a", "virkning": { "from_included": True, "to_included": False, "from": "2017-01-01 00:00:00+01", "to": "infinity" } } ], }, "livscykluskode": "Rettet", "tilstande": { "organisationfunktiongyldighed": [ { "gyldighed": "Aktiv", "virkning": { "from_included": True, "to_included": False, "from": "2017-01-01 00:00:00+01", "to": "2017-12-01 00:00:00+01" } }, { "gyldighed": "Inaktiv", "virkning": { "from_included": True, "to_included": False, "from": "2017-12-01 00:00:00+01", "to": "infinity" } }, ] }, "attributter": { "organisationfunktionegenskaber": [ { "virkning": { "from_included": True, "to_included": False, "from": "2017-01-01 00:00:00+01", "to": "infinity" }, "brugervendtnoegle": "bvn", "funktionsnavn": "Orlov" } ] }, } leave_uuid = 'b807628c-030c-4f5f-a438-de41c1f26ba5' actual_leave = c.organisationfunktion.get(leave_uuid) # drop lora-generated timestamps & users del actual_leave['fratidspunkt'], actual_leave[ 'tiltidspunkt'], actual_leave[ 'brugerref'] self.assertEqual(expected, actual_leave)
def test_edit_leave_overwrite(self): self.load_sample_structures() leave_uuid = 'b807628c-030c-4f5f-a438-de41c1f26ba5' req = [{ "type": "leave", "uuid": leave_uuid, "original": { "validity": { "from": "2017-01-01", "to": None }, "leave_type": { 'uuid': "32547559-cfc1-4d97-94c6-70b192eff825"}, }, "data": { "leave_type": { 'uuid': "bcd05828-cc10-48b1-bc48-2f0d204859b2" }, "validity": { "from": "2018-04-01", }, }, }] self.assertRequestResponse( '/service/details/edit', [leave_uuid], json=req, amqp_topics={'employee.leave.update': 1}, ) expected_leave = { "note": "Rediger orlov", "relationer": { "organisatoriskfunktionstype": [ { "uuid": "32547559-cfc1-4d97-94c6-70b192eff825", "virkning": { "from_included": True, "to_included": False, "from": "2017-01-01 00:00:00+01", "to": "2018-04-01 00:00:00+02" } }, { "uuid": "bcd05828-cc10-48b1-bc48-2f0d204859b2", "virkning": { "from_included": True, "to_included": False, "from": "2018-04-01 00:00:00+02", "to": "infinity" } }, ], "tilknyttedeorganisationer": [ { "uuid": "456362c4-0ee4-4e5e-a72c-751239745e62", "virkning": { "from_included": True, "to_included": False, "from": "2017-01-01 00:00:00+01", "to": "infinity" } } ], "tilknyttedebrugere": [ { "uuid": "53181ed2-f1de-4c4a-a8fd-ab358c2c454a", "virkning": { "from_included": True, "to_included": False, "from": "2017-01-01 00:00:00+01", "to": "infinity" } } ] }, "livscykluskode": "Rettet", "tilstande": { "organisationfunktiongyldighed": [ { "gyldighed": "Aktiv", "virkning": { "from_included": True, "to_included": False, "from": "2018-04-01 00:00:00+02", "to": "infinity" } }, { "gyldighed": "Inaktiv", "virkning": { "from_included": True, "to_included": False, "from": "2017-01-01 00:00:00+01", "to": "2018-04-01 00:00:00+02" } } ] }, "attributter": { "organisationfunktionegenskaber": [ { "virkning": { "from_included": True, "to_included": False, "from": "2017-01-01 00:00:00+01", "to": "infinity" }, "brugervendtnoegle": "bvn", "funktionsnavn": "Orlov" } ] }, } c = lora.Connector(virkningfra='-infinity', virkningtil='infinity') actual_leave = c.organisationfunktion.get(leave_uuid) # drop lora-generated timestamps & users del actual_leave['fratidspunkt'], actual_leave[ 'tiltidspunkt'], actual_leave[ 'brugerref'] self.assertEqual(expected_leave, actual_leave)
def test_create_leave(self): self.load_sample_structures() # Check the POST request c = lora.Connector(virkningfra='-infinity', virkningtil='infinity') userid = "53181ed2-f1de-4c4a-a8fd-ab358c2c454a" leave_type = "62ec821f-4179-4758-bfdf-134529d186e9" payload = [ { "type": "leave", "person": { "uuid": userid, }, "leave_type": { 'uuid': leave_type}, "user_key": "1234", "validity": { "from": "2017-12-01", "to": "2017-12-01", }, } ] leaveid, = self.assertRequest( '/service/details/create', json=payload, amqp_topics={'employee.leave.create': 1}, ) expected = { "livscykluskode": "Importeret", "tilstande": { "organisationfunktiongyldighed": [ { "virkning": { "to_included": False, "to": "2017-12-02 00:00:00+01", "from_included": True, "from": "2017-12-01 00:00:00+01" }, "gyldighed": "Aktiv" } ] }, "note": "Oprettet i MO", "relationer": { "tilknyttedeorganisationer": [ { "virkning": { "to_included": False, "to": "2017-12-02 00:00:00+01", "from_included": True, "from": "2017-12-01 00:00:00+01" }, "uuid": "456362c4-0ee4-4e5e-a72c-751239745e62" } ], "tilknyttedebrugere": [ { "virkning": { "to_included": False, "to": "2017-12-02 00:00:00+01", "from_included": True, "from": "2017-12-01 00:00:00+01" }, "uuid": userid } ], "organisatoriskfunktionstype": [ { "virkning": { "to_included": False, "to": "2017-12-02 00:00:00+01", "from_included": True, "from": "2017-12-01 00:00:00+01" }, "uuid": leave_type } ], }, "attributter": { "organisationfunktionegenskaber": [ { "virkning": { "to_included": False, "to": "2017-12-02 00:00:00+01", "from_included": True, "from": "2017-12-01 00:00:00+01" }, "brugervendtnoegle": "1234", "funktionsnavn": "Orlov" } ] } } actual_leave = c.organisationfunktion.get(leaveid) self.assertRegistrationsEqual(actual_leave, expected)
def test_edit_employee(self): # A generic example of editing an employee self.load_sample_structures() userid = "6ee24785-ee9a-4502-81c2-7697009c9053" req = [{ "type": "employee", "original": None, "data": { "validity": { "from": "2017-02-02", }, "user_key": "regnbøfssalat", "cpr_no": "0101010101", "givenname": "Martin L", "surname": "Gore", }, "uuid": userid }] self.assertRequestResponse( '/service/details/edit', [userid], json=req, amqp_topics={'employee.employee.update': 1}, ) # there must be a registration of the new name expected_brugeregenskaber = [{ 'brugervendtnoegle': 'fedtmule', 'virkning': { 'from': '1932-05-12 00:00:00+01', 'from_included': True, 'to': '2017-02-02 00:00:00+01', 'to_included': False } }, { 'brugervendtnoegle': 'regnbøfssalat', 'virkning': { 'from': '2017-02-02 00:00:00+01', 'from_included': True, 'to': 'infinity', 'to_included': False } }] expected_brugerudvidelser = [{ 'fornavn': 'Fedtmule', 'efternavn': 'Hund', 'virkning': { 'from': '1932-05-12 00:00:00+01', 'from_included': True, 'to': '2017-02-02 00:00:00+01', 'to_included': False } }, { 'fornavn': 'Martin L', 'efternavn': 'Gore', 'virkning': { 'from': '2017-02-02 00:00:00+01', 'from_included': True, 'to': 'infinity', 'to_included': False } }] # but looking at the validity of the original that was sent along # the period from that fromdate up to the this fromdate has been # removed expected_brugergyldighed = [{ 'gyldighed': 'Aktiv', 'virkning': { 'from': '1932-05-12 00:00:00+01', 'from_included': True, 'to': '2017-02-02 00:00:00+01', 'to_included': False } }, { 'gyldighed': 'Aktiv', 'virkning': { 'from': '2017-02-02 00:00:00+01', 'from_included': True, 'to': 'infinity', 'to_included': False } }] expected_tilknyttedepersoner = [ { 'urn': 'urn:dk:cpr:person:0101010101', 'virkning': { 'from': '2017-02-02 00:00:00+01', 'from_included': True, 'to': 'infinity', 'to_included': False } }, { 'urn': 'urn:dk:cpr:person:1205320000', 'virkning': { 'from': '1932-05-12 00:00:00+01', 'from_included': True, 'to': '2017-02-02 00:00:00+01', 'to_included': False } }, ] c = lora.Connector(virkningfra='-infinity', virkningtil='infinity') actual = c.bruger.get(userid) self.assertEqual(expected_brugeregenskaber, actual['attributter']['brugeregenskaber']) self.assertEqual(expected_brugerudvidelser, actual['attributter']['brugerudvidelser']) self.assertEqual(expected_brugergyldighed, actual['tilstande']['brugergyldighed']) self.assertEqual(expected_tilknyttedepersoner, actual['relationer']['tilknyttedepersoner'])
def test_create_employee(self): self.load_sample_structures() c = lora.Connector(virkningfra='-infinity', virkningtil='infinity') mock_uuid = "b6c268d2-4671-4609-8441-6029077d8efc" payload = { "givenname": "Torkild", "surname": "von Testperson", "cpr_no": "0101501234", "org": { 'uuid': "456362c4-0ee4-4e5e-a72c-751239745e62" } } with notsouid.freeze_uuid(mock_uuid): r = self.request('/service/e/create', json=payload) userid = r.json expected = { "livscykluskode": "Importeret", "note": "Oprettet i MO", "attributter": { "brugeregenskaber": [{ "virkning": { "to_included": False, "to": "infinity", "from_included": True, "from": "1950-01-01 00:00:00+01" }, "brugervendtnoegle": mock_uuid, "integrationsdata": "{}" }], 'brugerudvidelser': [{ 'efternavn': 'von Testperson', 'fornavn': 'Torkild', 'virkning': { 'from': '1950-01-01 ' '00:00:00+01', 'from_included': True, 'to': 'infinity', 'to_included': False } }] }, "relationer": { "tilhoerer": [{ "virkning": { "to_included": False, "to": "infinity", "from_included": True, "from": "1950-01-01 00:00:00+01" }, "uuid": "456362c4-0ee4-4e5e-a72c-751239745e62" }], "tilknyttedepersoner": [{ "virkning": { "to_included": False, "to": "infinity", "from_included": True, "from": "1950-01-01 00:00:00+01" }, "urn": "urn:dk:cpr:person:0101501234" }], }, "tilstande": { "brugergyldighed": [{ "virkning": { "to_included": False, "to": "infinity", "from_included": True, "from": "1950-01-01 00:00:00+01" }, "gyldighed": "Aktiv" }] }, } actual = c.bruger.get(userid) self.assertRegistrationsEqual(expected, actual) self.assertRequestResponse( '/service/e/{}/'.format(userid), { 'surname': 'von Testperson', 'givenname': 'Torkild', 'name': 'Torkild von Testperson', 'org': { 'name': 'Aarhus Universitet', 'user_key': 'AU', 'uuid': '456362c4-0ee4-4e5e-a72c-751239745e62', }, 'user_key': mock_uuid, 'cpr_no': '0101501234', 'uuid': userid, }, amqp_topics={'employee.employee.create': 1}, )