def test_generate_dictionary(): # given config = { "schema_dir": "tap_test_data_generator/schemas", "metadata_dir": "tap_test_data_generator/metadatas", "object_repository_dir": "tap_test_data_generator/object-repositories", "static_input_dir": "", "record_number": 100, "apply_record_number_on_pairwise": True, "data_locale_list": ["en_US", "fr_FR"] } object_repositories = load_repositories(config) catalog = discover(config) stream = catalog.get_stream("sample") schema_json = load_schema_json(config, stream) definitions = load_definitions(schema_json, config) value_lists = data_generator.extract_value_lists(None, schema_json, object_repositories, definitions) pairwise_values = AllPairs(value_lists) pairs = pairwise_values.next() faker_factory = Faker() # when generated_dict = data_generator.generate_dictionary( None, schema_json, {}, faker_factory, object_repositories, pairs, definitions, 5) # then assert generated_dict is not None assert "checked" in generated_dict assert "dimensions" in generated_dict assert "id" in generated_dict assert "color" in generated_dict assert "price" in generated_dict assert "tags" in generated_dict assert "hour" in generated_dict
def test_generate_object_repository(): # given property_name = "test_property" schema_json = { "type": "object", "$generator": "#/object-repository/dim-sample", "$pairwise": True } config = { "object_repository_dir": "tap_test_data_generator/object-repositories" } object_repositories = load_repositories(config) faker_factory = Faker() value_lists = data_generator.extract_value_lists("test_property", schema_json, object_repositories, {}) # adding a second property into value_lists because at least 2 properties are required in order to AllPairs works value_lists["boolean"] = [True, False] pairwise_values = AllPairs(value_lists) pairs = pairwise_values.next() # when dictionary = data_generator.generate_object({}, property_name, schema_json, faker_factory, object_repositories, pairs, {}, 5) # then assert dictionary is not None assert "test_property" in dictionary assert "width" in dictionary["test_property"] assert "height" in dictionary["test_property"]
def test_generate_boolean_pair(): # given property_name = "test_property" schema_json = {"type": "boolean", "$pairwise": True} faker_factory = Faker() value_lists = data_generator.extract_value_lists(property_name, schema_json, None, {}) # adding a second property into value_lists because at least 2 properties are required in order to AllPairs works value_lists["test2"] = ["A", "B"] pairwise_values = AllPairs(value_lists) pairs = pairwise_values.next() # when generated_boolean = data_generator.generate_boolean( property_name, schema_json, faker_factory, pairs, 0) # then assert generated_boolean is not None assert isinstance(generated_boolean, bool) assert getattr(pairs, property_name) == generated_boolean
def test_generate_string_pair_pattern(): # given property_name = "test_property" schema_json = {"type": "string", "pattern": "(A|P)M", "$pairwise": True} faker_factory = Faker() value_lists = data_generator.extract_value_lists_from_string( property_name, schema_json) # adding a second property into value_lists because at least 2 properties are required in order to AllPairs works value_lists["boolean"] = [True, False] pairwise_values = AllPairs(value_lists) pairs = pairwise_values.next() # when generated_string = data_generator.generate_string(property_name, schema_json, faker_factory, pairs, 0) # then assert generated_string is not None assert "" != generated_string assert getattr(pairs, property_name) == generated_string