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)