def test_manager_add_no_name(tests_manager, namespace_location): metadata_name = 'valid_metadata_instance' metadata = Metadata.from_dict(METADATA_TEST_NAMESPACE, {**valid_metadata_json}) instance = tests_manager.create(None, metadata) assert instance is not None assert instance.name == metadata_name # Ensure file was created using store_manager instance_list = tests_manager.metadata_store.fetch_instances(metadata_name) assert len(instance_list) == 1 instance = Metadata.from_dict(METADATA_TEST_NAMESPACE, instance_list[0]) metadata_location = _compose_instance_location( tests_manager.metadata_store, namespace_location, metadata_name) assert instance.resource == metadata_location assert instance.special_property == instance.metadata['required_test'] # And finally, remove it. tests_manager.remove(metadata_name) # Verify removal using metadata_store with pytest.raises(MetadataNotFoundError): tests_manager.metadata_store.fetch_instances(metadata_name)
def test_manager_default_value(tests_hierarchy_manager, namespace_location): # Create some metadata, then attempt to update it with a known schema violation # and ensure the previous copy still exists... # Create a user instance... metadata = Metadata.from_dict(METADATA_TEST_NAMESPACE, {**byo_metadata_json}) metadata.display_name = 'user1' instance = tests_hierarchy_manager.create('default_value', metadata) assert instance.metadata[ 'number_default_test'] == 42 # Ensure default value was applied when not present instance2 = tests_hierarchy_manager.get('default_value') instance2.metadata['number_default_test'] = 37 tests_hierarchy_manager.update('default_value', instance2) instance3 = tests_hierarchy_manager.get('default_value') assert instance3.metadata['number_default_test'] == 37 # Now remove the updated value and ensure it comes back with the default instance3.metadata.pop('number_default_test') assert 'number_default_test' not in instance3.metadata tests_hierarchy_manager.update('default_value', instance3) instance4 = tests_hierarchy_manager.get('default_value') assert instance4.metadata['number_default_test'] == 42
def test_manager_add_display_name(tests_manager, namespace_location): metadata_display_name = '1 teste "rápido"' metadata_name = 'a_1_teste_rpido' metadata = Metadata(**valid_display_name_json) instance = tests_manager.create(None, metadata) assert instance is not None assert instance.name == metadata_name assert instance.display_name == metadata_display_name # Ensure file was created using store_manager instance_list = tests_manager.metadata_store.fetch_instances(metadata_name) assert len(instance_list) == 1 instance = Metadata.from_dict(METADATA_TEST_NAMESPACE, instance_list[0]) metadata_location = _compose_instance_location( tests_manager.metadata_store, namespace_location, metadata_name) assert instance.resource == metadata_location assert instance.display_name == metadata_display_name # And finally, remove it. tests_manager.remove(metadata_name) # Verify removal using metadata_store with pytest.raises(MetadataNotFoundError): tests_manager.metadata_store.fetch_instances(metadata_name)
def test_manager_update(tests_hierarchy_manager, namespace_location): # Create some metadata, then attempt to update it with a known schema violation # and ensure the previous copy still exists... # Create a user instance... metadata = Metadata.from_dict(METADATA_TEST_NAMESPACE, {**byo_metadata_json}) metadata.display_name = 'user1' instance = tests_hierarchy_manager.create('update', metadata) assert instance is not None assert instance.resource.startswith(str(namespace_location)) assert instance.for_update is False assert instance.special_property == instance.metadata['required_test'] # Now update the user instance - add a field - and ensure that the original renamed file is not present. instance2 = tests_hierarchy_manager.get('update') instance2.display_name = 'user2' instance2.metadata['number_range_test'] = 7 instance = tests_hierarchy_manager.update('update', instance2) assert instance.for_update is True assert instance.special_property == instance.metadata['required_test'] _ensure_single_instance(tests_hierarchy_manager, namespace_location, "update.json") instance2 = tests_hierarchy_manager.get('update') assert instance2.display_name == 'user2' assert instance2.metadata['number_range_test'] == 7
def test_manager_add_short_name(tests_manager, namespace_location): # Found that single character names were failing validation metadata_name = 'a' metadata = Metadata(**valid_metadata_json) instance = tests_manager.create(metadata_name, metadata) assert instance is not None assert instance.name == metadata_name # Ensure file was created using store_manager instance_list = tests_manager.metadata_store.fetch_instances(metadata_name) assert len(instance_list) == 1 instance = Metadata.from_dict(METADATA_TEST_NAMESPACE, instance_list[0]) metadata_location = _compose_instance_location(tests_manager.metadata_store, namespace_location, metadata_name) assert instance.resource == metadata_location # And finally, remove it. tests_manager.remove(metadata_name) # Verify removal using metadata_store with pytest.raises(MetadataNotFoundError): tests_manager.metadata_store.fetch_instances(metadata_name)