Пример #1
0
    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")
Пример #2
0
    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")
Пример #3
0
    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
Пример #4
0
    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
Пример #5
0
    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