Пример #1
0
    def test_deserialize_whitelist_same_parser_multiple_times(self, tmp_path):
        # same parser class can exist in ParserSet multiple times (e.g. with different arguments)
        ps = ParserSet()
        p1 = SomeTestParserArguments()
        p1.taxid = '9606'
        other_p1 = SomeTestParserArguments()
        other_p1.taxid = '10090'
        p2 = RootTestParser()
        p3 = DependingTestParser()

        ps.add(p1)
        ps.add(other_p1)
        ps.add(p2)
        ps.add(p3)

        ps.serialize(tmp_path)

        reloaded_ps = ParserSet.deserialize(
            tmp_path, whitelist=[SomeTestParserArguments])

        assert len(reloaded_ps.parsers) == 2
        assert p1.__class__.__name__ in [x.name for x in reloaded_ps.parsers]
        assert other_p1.__class__.__name__ in [
            x.name for x in reloaded_ps.parsers
        ]
        assert p2.__class__.__name__ not in [
            x.name for x in reloaded_ps.parsers
        ]
        assert p3.__class__.__name__ not in [
            x.name for x in reloaded_ps.parsers
        ]
Пример #2
0
    def test_deserialize_whitelist_multiple_parsers(self, tmp_path):

        ps = ParserSet()
        p1 = SomeTestParser()
        p2 = RootTestParser()
        p3 = DependingTestParser()

        ps.add(p1)
        ps.add(p2)
        ps.add(p3)

        ps.serialize(tmp_path)

        reloaded_ps = ParserSet.deserialize(
            tmp_path, whitelist=[SomeTestParser, DependingTestParser])

        assert len(reloaded_ps.parsers) == 2
        assert p1.__class__.__name__ in [x.name for x in reloaded_ps.parsers]
        assert p3.__class__.__name__ in [x.name for x in reloaded_ps.parsers]
        assert p2.__class__.__name__ not in [
            x.name for x in reloaded_ps.parsers
        ]