def test_document_metas_from_data_with_multiple_metadata_claims(self): """ It should create one DocumentMeta for each metadata claim. If document_data contains multiple metadata claims it should init one DocumentMeta for each claim. """ claimant = 'http://example/claimant' document_data = { 'title': 'the title', 'description': 'the description', 'site_title': 'the site title' } document_metas = document_claims.document_metas_from_data( document_data, claimant) assert len(document_metas) == len(document_data.items()) for key, value in document_data.items(): assert { 'type': key, 'value': [value], 'claimant': claimant, } in document_metas
def test_document_metas_from_data_with_multiple_metadata_claims(self): """ It should create one DocumentMeta for each metadata claim. If document_data contains multiple metadata claims it should init one DocumentMeta for each claim. """ claimant = "http://example/claimant" document_data = { "title": "the title", "description": "the description", "site_title": "the site title", } document_metas = document_claims.document_metas_from_data( document_data, claimant) assert len(document_metas) == len(document_data.items()) for key, value in document_data.items(): assert { "type": key, "value": [value], "claimant": claimant, } in document_metas
def test_document_metas_from_data_ignores_links_list(self): """It should ignore the "link" list in the document_data.""" document_data = {"link": [{"href": "http://example.com/link"}]} document_metas = document_claims.document_metas_from_data( document_data, "http://example/claimant") assert document_metas == []
def test_document_metas_from_data_ignores_whitespace_only_titles(self): """It should ignore whitespace-only document titles.""" for title in (" ", [" ", " "], "\n\n \n"): document_data = {"title": title} document_metas = document_claims.document_metas_from_data( document_data, "http://example/claimant") assert document_metas == []
def test_document_metas_from_data_ignores_empty_string_titles(self): """It should ignore empty document titles.""" for title in ("", ["", ""]): document_data = {"title": title} document_metas = document_claims.document_metas_from_data( document_data, "http://example/claimant") assert document_metas == []
def test_document_metas_from_data_ignores_null_titles(self): """It should ignore null document titles.""" for title in (None, [None, None]): document_data = {'title': title} document_metas = document_claims.document_metas_from_data( document_data, 'http://example/claimant') assert document_metas == []
def test_document_metas_from_data_ignores_empty_string_titles(self): """It should ignore empty document titles.""" for title in ('', ['', '']): document_data = {'title': title} document_metas = document_claims.document_metas_from_data( document_data, 'http://example/claimant') assert document_metas == []
def test_document_metas_from_data_ignores_whitespace_only_titles(self): """It should ignore whitespace-only document titles.""" for title in (' ', [' ', ' '], '\n\n \n'): document_data = {'title': title} document_metas = document_claims.document_metas_from_data( document_data, 'http://example/claimant') assert document_metas == []
def test_document_metas_from_data(self, input_, output): claimant = "http://example.com/claimant/" document_metas = document_claims.document_metas_from_data( document_data=input_, claimant=claimant ) assert document_metas == [ {"type": output["type"], "value": output["value"], "claimant": claimant} ]
def test_document_metas_from_data(self, input_, output): claimant = 'http://example.com/claimant/' document_metas = document_claims.document_metas_from_data( document_data=input_, claimant=claimant) assert document_metas == [{ 'type': output['type'], 'value': output['value'], 'claimant': claimant, }]
def test_document_metas_from_data_ignores_links_list(self): """It should ignore the "link" list in the document_data.""" document_data = { 'link': [ {'href': 'http://example.com/link'}, ] } document_metas = document_claims.document_metas_from_data( document_data, 'http://example/claimant') assert document_metas == []
def test_document_metas_from_data_allows_null_non_titles(self): """Null values are allowed if 'type' isn't 'title'.""" for value in (None, [None, None]): document_data = {"foo": value} document_metas = document_claims.document_metas_from_data( document_data, "http://example/claimant" ) if not isinstance(value, list): # We expect it to turn non-lists into length-1 lists. value = [value] assert document_metas == [ {"type": "foo", "value": value, "claimant": "http://example/claimant"} ]
def test_document_metas_from_data_allows_whitespace_only_non_titles(self): """Whitespace-only strings are allowed if 'type' isn't 'title'.""" for value in (" ", [" ", " "], "\n\n \n"): document_data = {"foo": value} document_metas = document_claims.document_metas_from_data( document_data, "http://example/claimant" ) if not isinstance(value, list): # We expect it to turn non-lists into length-1 lists. value = [value] assert document_metas == [ {"type": "foo", "value": value, "claimant": "http://example/claimant"} ]
def _document(document, claimant): """ Return document meta and document URI data from the given document dict. Transforms the "document" dict that the client posts into a convenient format for creating DocumentURI and DocumentMeta objects later. """ document = document or {} document_uri_dicts = document_claims.document_uris_from_data( copy.deepcopy(document), claimant=claimant) document_meta_dicts = document_claims.document_metas_from_data( copy.deepcopy(document), claimant=claimant) return { "document_uri_dicts": document_uri_dicts, "document_meta_dicts": document_meta_dicts, }
def test_document_metas_from_data_allows_whitespace_only_non_titles(self): """Whitespace-only strings are allowed if 'type' isn't 'title'.""" for value in (' ', [' ', ' '], '\n\n \n'): document_data = {'foo': value} document_metas = document_claims.document_metas_from_data( document_data, 'http://example/claimant') if not isinstance(value, list): # We expect it to turn non-lists into length-1 lists. value = [value] assert document_metas == [{ 'type': 'foo', 'value': value, 'claimant': 'http://example/claimant', }]
def test_document_metas_from_data_allows_null_non_titles(self): """Null values are allowed if 'type' isn't 'title'.""" for value in (None, [None, None]): document_data = {'foo': value} document_metas = document_claims.document_metas_from_data( document_data, 'http://example/claimant') if not isinstance(value, list): # We expect it to turn non-lists into length-1 lists. value = [value] assert document_metas == [{ 'type': 'foo', 'value': value, 'claimant': 'http://example/claimant', }]
def _document(document, claimant): """ Return document meta and document URI data from the given document dict. Transforms the "document" dict that the client posts into a convenient format for creating DocumentURI and DocumentMeta objects later. """ document = document or {} document_uri_dicts = document_claims.document_uris_from_data( copy.deepcopy(document), claimant=claimant ) document_meta_dicts = document_claims.document_metas_from_data( copy.deepcopy(document), claimant=claimant ) return { "document_uri_dicts": document_uri_dicts, "document_meta_dicts": document_meta_dicts, }