diff --git a/snowfakery/data_generator_runtime.py b/snowfakery/data_generator_runtime.py index 7f451e6a..6f49a8ce 100644 --- a/snowfakery/data_generator_runtime.py +++ b/snowfakery/data_generator_runtime.py @@ -338,7 +338,7 @@ def __init__( self.instance_states = {} self.filter_row_values = self.filter_row_values_normal snowfakery_version = self.options.get( - "snowfakery.standard_plugins.SnowfakeryVersion.snowfakery_version", 2 + "snowfakery.standard_plugins.SnowfakeryVersion.snowfakery_version", 3 ) assert snowfakery_version in (2, 3) self.native_types = snowfakery_version == 3 diff --git a/tests/test_data_generator_runtime_dom.py b/tests/test_data_generator_runtime_dom.py index 5035e419..37c633a5 100644 --- a/tests/test_data_generator_runtime_dom.py +++ b/tests/test_data_generator_runtime_dom.py @@ -31,13 +31,19 @@ def __init__(self): self.random_references = [] -def standard_runtime(): +def standard_runtime(snowfakery_version=None): + options = {} + if snowfakery_version is not None: + options[ + "snowfakery.standard_plugins.SnowfakeryVersion.snowfakery_version" + ] = snowfakery_version output_stream = DebugOutputStream() interpreter = Interpreter( output_stream=output_stream, parent_application=SnowfakeryApplication(), parse_result=FakeParseResult(), globals=Globals(), + options=options, ) runtime_context = RuntimeContext(interpreter=interpreter) interpreter.current_context = runtime_context @@ -150,15 +156,23 @@ def test_old_jinja_syntax(self): repr(definition) f = FieldFactory("field", definition, "abc.yml", 10) repr(f) - x = f.generate_value(standard_runtime()) + x = f.generate_value(standard_runtime(snowfakery_version=2)) assert x == 15 - def test_mixed_jinja_syntax(self): + def test_mixed_jinja_syntax__version_2(self): definition = SimpleValue("${{2+3}} <<5*3>>", "abc.yml", 10) repr(definition) f = FieldFactory("field", definition, "abc.yml", 10) repr(f) - x = f.generate_value(standard_runtime()) + x = f.generate_value(standard_runtime(snowfakery_version=2)) + assert x == "5 <<5*3>>" + + def test_mixed_jinja_syntax__version_3(self): + definition = SimpleValue("${{2+3}} <<5*3>>", "abc.yml", 10) + repr(definition) + f = FieldFactory("field", definition, "abc.yml", 10) + repr(f) + x = f.generate_value(standard_runtime(snowfakery_version=3)) assert x == "5 <<5*3>>" def test_check_type(self): diff --git a/tests/test_dates.py b/tests/test_dates.py index 257ba410..0acf56e0 100644 --- a/tests/test_dates.py +++ b/tests/test_dates.py @@ -7,6 +7,7 @@ class TestDates: def test_old_dates_as_strings(self, generated_rows): yaml = """ + - snowfakery_version: 2 - object: OBJ fields: basedate: ${{datetime(year=2000, month=1, day=1)}} diff --git a/tests/test_faker.py b/tests/test_faker.py index 193e15a5..5517d771 100644 --- a/tests/test_faker.py +++ b/tests/test_faker.py @@ -76,7 +76,7 @@ def test_fake_two_params_flat(self, generated_rows): """ generate(StringIO(yaml), {}, None) date = row_values(generated_rows, 0, "date") - assert type(date) == str, generated_rows.mock_calls + assert isinstance(date, str), generated_rows.mock_calls assert len(date.split("-")) == 3, date def test_fake_two_params_nested(self, generated_rows): @@ -530,6 +530,7 @@ def test_context_aware_alernate_names(self, email, first_name, generated_rows): @mock.patch("faker.providers.internet.en_US.Provider.ascii_safe_email") def test_disable_matching(self, email, first_name, generated_rows): yaml = """ + - snowfakery_version: 2 - object: X fields: FirstName: diff --git a/tests/test_line_numbers.py b/tests/test_line_numbers.py index 5e10868a..92425803 100644 --- a/tests/test_line_numbers.py +++ b/tests/test_line_numbers.py @@ -5,16 +5,17 @@ from snowfakery.data_gen_exceptions import DataGenSyntaxError, DataGenValueError yaml = """ #1 -- object: A #2 - count: 10 #3 - fields: #4 - A: What a wonderful life #5 - X: Y #6 -- object: B #7 - count: ${{expr}} #8 - fields: #9 - A: What a wonderful life #10 - X: Y #11 +- snowfakery_version: 2 #2 +- object: A #3 + count: 10 #4 + fields: #5 + A: What a wonderful life #6 + X: Y #7 +- object: B #8 + count: ${{expr}} #9 + fields: #10 + A: What a wonderful life #11 + X: Y #12 """ yaml_with_syntax_error = """ #1 @@ -35,16 +36,16 @@ class TestLineNumbers: def test_line_numbers(self): result = parse_recipe(StringIO(yaml)) templates = result.templates - assert templates[0].line_num == 2 - assert templates[0].fields[0].definition.line_num == 5 + assert templates[0].line_num == 3 + assert templates[0].fields[0].definition.line_num == 6 line_num = templates[0].fields[1].definition.line_num - assert 4 <= line_num <= 6 # anywhere in here is okay for small strings - assert templates[1].count_expr.line_num == 8 + assert 5 <= line_num <= 7 # anywhere in here is okay for small strings + assert templates[1].count_expr.line_num == 9 def test_value_error_reporting(self): with pytest.raises(DataGenValueError) as e: generate(StringIO(yaml), {}, None) - assert str(e.value)[-2:] == ":8" + assert str(e.value)[-2:] == ":9" def test_syntax_error_number_reporting(self): with pytest.raises(DataGenSyntaxError) as e: diff --git a/tests/test_output_streams.py b/tests/test_output_streams.py index 25de7ae2..06bd8875 100644 --- a/tests/test_output_streams.py +++ b/tests/test_output_streams.py @@ -44,6 +44,7 @@ def do_output(self, yaml): def test_dates(self): yaml = """ + - snowfakery_version: 2 - object: foo fields: y2k: ${{date(year=2000, month=1, day=1)}} diff --git a/tests/test_references.py b/tests/test_references.py index ec5d600b..9a74ed59 100644 --- a/tests/test_references.py +++ b/tests/test_references.py @@ -870,6 +870,7 @@ def test_random_reference__properties(self, generated_rows): def test_random_reference__weird_type_properties(self, generated_rows): # unusual types are not serialized and won't be returned yaml = """ + - snowfakery_version: 2 - plugin: tests.test_custom_plugins_and_providers.EvalPlugin - object: Parent nickname: parent_with_counter @@ -966,6 +967,7 @@ def test_random_reference_to_objects_with_diverse_types(self, generated_rows): # There is a risk that some weird types will not be serialized # correctly. yaml = """ + - snowfakery_version: 2 - object: A count: 3 nickname: AA diff --git a/tests/test_template_funcs.py b/tests/test_template_funcs.py index ea460b18..edec3724 100644 --- a/tests/test_template_funcs.py +++ b/tests/test_template_funcs.py @@ -204,6 +204,7 @@ def test_conditional_nested(self, generated_rows): def test_parse_date_from_datetime_string(self, generated_rows): yaml = """ + - snowfakery_version: 2 - object : A fields: a: ${{date("2012-01-01T00:01")}} @@ -213,6 +214,7 @@ def test_parse_date_from_datetime_string(self, generated_rows): def test_parse_date_from_date_string(self, generated_rows): yaml = """ + - snowfakery_version: 2 - object : A fields: a: ${{date("2012-01-01")}} @@ -222,6 +224,7 @@ def test_parse_date_from_date_string(self, generated_rows): def test_date_from_datetime(self, generated_rows): yaml = """ + - snowfakery_version: 2 - object : A fields: a: ${{date(datetime(year=2012, month=1, day=1))}} @@ -231,6 +234,7 @@ def test_date_from_datetime(self, generated_rows): def test_now_variable(self, generated_rows): yaml = """ + - snowfakery_version: 2 - object : A fields: a: ${{now}} @@ -244,6 +248,7 @@ def test_now_variable(self, generated_rows): def test_now_calls_datetime_now(self, datetime): now = datetime.now = mock.Mock() yaml = """ + - snowfakery_version: 2 - object : A fields: a: ${{now}}