Exemple #1
0
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)
Exemple #2
0
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
Exemple #3
0
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)
Exemple #4
0
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)