SFDO-Tooling / Snowfakery

A tool for generating fake data that has relations between tables.
BSD 3-Clause "New" or "Revised" License
141 stars 32 forks source link

Upgrade to Pydantic v2 #1018

Open jlantz opened 7 months ago

jlantz commented 7 months ago

This branch has two test failures that need investigation:

_____________________________________________________________________________ TestDeclarationParser.test_priority_overrides _____________________________________________________________________________

self = <test_declaration_parser.TestDeclarationParser object at 0x100182f00>

    def test_priority_overrides(self):
        unification = unify(declarations)
>       assert unification == {
            "bar": SObjectRuleDeclaration(
                sf_object="bar",
                load_after=None,
                priority=None,
                api="rest",
                batch_size=None,
                bulk_mode="parallel",
                anchor_date=None,
            ),
            "foo": SObjectRuleDeclaration(
                sf_object="foo",
                load_after=None,
                priority=None,
                api="bulk",
                batch_size=2000,
                bulk_mode="serial",
                anchor_date="2000-01-01",
            ),
        }
E       pydantic_core._pydantic_core.ValidationError: 5 validation errors for SObjectRuleDeclaration
E       priority
E         Input should be 'low', 'medium' or 'high' [type=literal_error, input_value=None, input_type=NoneType]
E           For further information visit https://errors.pydantic.dev/2.6/v/literal_error
E       batch_size
E         Input should be a valid integer [type=int_type, input_value=None, input_type=NoneType]
E           For further information visit https://errors.pydantic.dev/2.6/v/int_type
E       anchor_date.str
E         Input should be a valid string [type=string_type, input_value=None, input_type=NoneType]
E           For further information visit https://errors.pydantic.dev/2.6/v/string_type
E       anchor_date.date
E         Input should be a valid date [type=date_type, input_value=None, input_type=NoneType]
E           For further information visit https://errors.pydantic.dev/2.6/v/date_type
E       load_after
E         Input should be a valid string [type=string_type, input_value=None, input_type=NoneType]
E           For further information visit https://errors.pydantic.dev/2.6/v/string_type

tests/cci/test_declaration_parser.py:32: ValidationError
_________________________________________________________________________________ TestFaker.test_non_overlapping_dates __________________________________________________________________________________

self = <test_faker.TestFaker object at 0x104193050>, generated_rows = <MagicMock name='write_single_row' id='4373943392'>

    def test_non_overlapping_dates(self, generated_rows):
        yaml = """
        - object: OBJ
          fields:
            date:
                date_between:
                    start_date: today
                    end_date: 2000-01-01
        """
        generate(StringIO(yaml), {}, None)
>       assert row_values(generated_rows, 0, "date") is None
E       AssertionError: assert datetime.date(2000, 7, 9) is None
E        +  where datetime.date(2000, 7, 9) = row_values(<MagicMock name='write_single_row' id='4373943392'>, 0, 'date')

tests/test_faker.py:104: AssertionError