def test_values(self): pvalues = {'Pelecanus occidentalis', 'Pelecanus_occidentalis', 0, 'Pelecanus occidentalis', 1266004} book_url = 'https://openlibrary.org/books/OL7928788M/' book_url += 'Between_Pacific_Tides' monty_uid = 'gov.noaa.ncdc:C00345' rval = 'Ed_Ricketts' rval2 = 'File:Pacific Biological Laboratories.JPG' test_pelican = PelicanJson(self.pelecanus_occidentalis) test_book = PelicanJson(self.book) test_monty = PelicanJson(self.monterrey) test_rickettsi = PelicanJson(self.ricketts) self.assertEqual(pvalues, set(test_pelican.values())) self.assertIn(book_url, set(test_book.values())) self.assertIn(monty_uid, set(test_monty.values())) self.assertIn(rval, set(test_rickettsi.values())) self.assertIn(rval2, set(test_rickettsi.values()))
def test_set_nested_value(self): new_path = ['ISBN:9780804720687', 'book_title'] test_book = PelicanJson(self.book) test_book.set_nested_value(new_path, 'Between Pacific Tides') self.assertEqual(test_book.get_nested_value(new_path), 'Between Pacific Tides') test_pelican = PelicanJson(self.pelecanus_occidentalis) values = [] self.assertEqual(len(list(test_pelican.values())), 5) for path, value in test_pelican.enumerate(): values.append(value) test_pelican.set_nested_value(path, None) self.assertEqual(len(set(test_pelican.values())), 1) for path in test_pelican.search_value(None): test_pelican.set_nested_value(path, values.pop()) self.assertEqual(len(list(test_pelican.values())), 5) pelican_item = PelicanJson(self.item) pelican_item.set_nested_value(['href'], None) self.assertEqual(pelican_item['href'], None)
def test_searchvalue(self): test_monty = PelicanJson(self.monterrey) values = list(test_monty.values()) self.assertEqual(len(values), 63) answers = [('gov.noaa.ncdc:C00822', ['results', 7, 'uid']), ('gov.noaa.ncdc:C00040', ['results', 0, 'uid'])] for item, answer in answers: self.assertEqual(next(test_monty.search_value(item)), answer) self.assertEqual(list(test_monty.search_value('2014-08-25')), [['results', 1, 'maxdate'], ['results', 3, 'maxdate']]) npr_api_tag = [['attributes', 'tags', 0], ['items', 0, 'attributes', 'tags', 0]] pelican_item = PelicanJson(self.item) for path in pelican_item.search_value('npr_api'): self.assertIn(path, npr_api_tag)