async def run(self, last_import: datetime): """ Reads org unit files newer than last_import and performs inserts/updates as needed """ print("Starting org unit import") filenames = los_files.get_fileset_implementation( ).get_import_filenames() initials = los_files.parse_filenames(filenames, prefix="Org_inital", last_import=last_import) creates = los_files.parse_filenames(filenames, prefix="Org_nye", last_import=last_import) edits = los_files.parse_filenames(filenames, prefix="Org_ret", last_import=last_import) for filename, _ in initials: await self.handle_initial(filename) for filename, _ in creates: await self.handle_create(filename) for filename, filedate in edits: await self.handle_edit(filename, filedate) print("Org unit import done")
async def run(self, last_import: datetime): print("Starting manager import") filenames = los_files.get_fileset_implementation( ).get_import_filenames() self.cache_cpr() creates = los_files.parse_filenames(filenames, prefix="Leder_nye", last_import=last_import) edits = los_files.parse_filenames(filenames, prefix="Leder_ret", last_import=last_import) terminates = los_files.parse_filenames(filenames, prefix="Leder_luk", last_import=last_import) for filename, filedate in creates: await self.handle_create(filename, filedate) for filename, filedate in edits: await self.handle_edit(filename, filedate) for filename, filedate in terminates: await self.handle_terminate(filename, filedate) print("Manager import done")
def test_sorts_output(self, filenames): expected_dates = [ datetime(2018, 1, 1), datetime(2019, 1, 1), datetime(2020, 1, 1), datetime(2021, 1, 1), ] actual = los_files.parse_filenames(filenames, "Org_nye", datetime.min) actual_dates = list(map(itemgetter(1), actual)) assert expected_dates == actual_dates
def test_parses_prefix_correctly(self): filenames = [ "xxxxOrg_nye_20210128_123742.csv", "Org_nye_20210128_123742.csv", "garbagebagasdasdads", ] expected_filename = "Org_nye_20210128_123742.csv" actual = los_files.parse_filenames(filenames, "Org_nye", datetime.min) actual_filename, _ = one(actual) assert expected_filename == actual_filename
def test_filters_dates_correctly(self): filenames = [ "Org_nye_20200128_123742.csv", "Org_nye_20201028_123742.csv", "Org_nye_20210128_123742.csv", ] expected = [ ("Org_nye_20201028_123742.csv", datetime(2020, 10, 28, 12, 37, 42)), ("Org_nye_20210128_123742.csv", datetime(2021, 1, 28, 12, 37, 42)), ] actual = los_files.parse_filenames(filenames, "Org_nye", datetime(2020, 6, 1, 0, 0, 0)) assert expected == actual