def test18_as_xml_part(self): r = [ Resource(uri='a', lastmod='2006-01-01', length=12), Resource(uri='b', lastmod='2007-02-02', length=34), Resource(uri='c', lastmod='2008-03-03', length=56) ] lb = ListBaseWithIndex(resources=r) # Allow unlimited entries, part makes no sense lb.max_sitemap_entries = None self.assertRaises(ListBaseIndexError, lb.as_xml_part) # Request after end lb.max_sitemap_entries = 1 self.assertRaises(ListBaseIndexError, lb.as_xml_part, part_number=9) # Allow only 1 entry lb.max_sitemap_entries = 1 xml = lb.as_xml_part(part_number=1) self.assertFalse(re.search(r'<loc>a</loc>', xml)) self.assertTrue(re.search(r'<loc>b</loc>', xml)) self.assertFalse(re.search(r'<loc>c</loc>', xml)) # Request truncated lb.max_sitemap_entries = 2 xml = lb.as_xml_part(part_number=1) self.assertFalse(re.search(r'<loc>a</loc>', xml)) self.assertFalse(re.search(r'<loc>b</loc>', xml)) self.assertTrue(re.search(r'<loc>c</loc>', xml))
def test17_as_xml_index(self): r = [Resource(uri='a', lastmod='2006-01-01', length=12), Resource(uri='b', lastmod='2007-02-02', length=34), Resource(uri='c', lastmod='2008-03-03', length=56)] lb = ListBaseWithIndex(resources=r) lb.max_sitemap_entries = 2 xml = lb.as_xml_index() self.assertTrue(re.search(r'<loc>/tmp/sitemap00001.xml</loc>', xml)) self.assertFalse(re.search(r'<loc>/tmp/sitemap00002.xml</loc>', xml)) # Index not required lb.max_sitemap_entries = 3 self.assertRaises(ListBaseIndexError, lb.as_xml_index)
def test17_as_xml_index(self): r = [ Resource(uri='a', lastmod='2006-01-01', length=12), Resource(uri='b', lastmod='2007-02-02', length=34), Resource(uri='c', lastmod='2008-03-03', length=56) ] lb = ListBaseWithIndex(resources=r) lb.max_sitemap_entries = 2 xml = lb.as_xml_index() self.assertTrue(re.search(r'<loc>/tmp/sitemap00001.xml</loc>', xml)) self.assertFalse(re.search(r'<loc>/tmp/sitemap00002.xml</loc>', xml)) # Index not required lb.max_sitemap_entries = 3 self.assertRaises(ListBaseIndexError, lb.as_xml_index)
def test16_as_xml(self): r = [Resource(uri='a', lastmod='2014-04-14', length=14), Resource(uri='b', lastmod='2015-05-15', length=15), Resource(uri='c', lastmod='2016-06-16', length=16)] lb = ListBaseWithIndex(resources=r) lb.max_sitemap_entries = 3 # One file xml = lb.as_xml() self.assertTrue(re.search(r'<urlset ', xml)) self.assertTrue(re.search(r'<loc>a</loc>', xml)) self.assertTrue(re.search(r'<loc>b</loc>', xml)) self.assertTrue(re.search(r'<loc>c</loc>', xml)) # Needs multifile bit not allowed lb.max_sitemap_entries = 1 self.assertRaises(ListBaseIndexError, lb.as_xml) # Allow multifile... xml = lb.as_xml(allow_multifile=True) self.assertTrue(re.search(r'<sitemapindex', xml)) self.assertTrue(re.search(r'<loc>/tmp/sitemap00001.xml</loc>', xml)) self.assertTrue(re.search(r'<loc>/tmp/sitemap00002.xml</loc>', xml)) self.assertFalse(re.search(r'<loc>/tmp/sitemap00003.xml</loc>', xml))
def test18_as_xml_part(self): r = [Resource(uri='a', lastmod='2006-01-01', length=12), Resource(uri='b', lastmod='2007-02-02', length=34), Resource(uri='c', lastmod='2008-03-03', length=56)] lb = ListBaseWithIndex(resources=r) # Allow unlimited entries, part makes no sense lb.max_sitemap_entries = None self.assertRaises(ListBaseIndexError, lb.as_xml_part) # Request after end lb.max_sitemap_entries = 1 self.assertRaises(ListBaseIndexError, lb.as_xml_part, part_number=9) # Allow only 1 entry lb.max_sitemap_entries = 1 xml = lb.as_xml_part(part_number=1) self.assertFalse(re.search(r'<loc>a</loc>', xml)) self.assertTrue(re.search(r'<loc>b</loc>', xml)) self.assertFalse(re.search(r'<loc>c</loc>', xml)) # Request truncated lb.max_sitemap_entries = 2 xml = lb.as_xml_part(part_number=1) self.assertFalse(re.search(r'<loc>a</loc>', xml)) self.assertFalse(re.search(r'<loc>b</loc>', xml)) self.assertTrue(re.search(r'<loc>c</loc>', xml))
def test16_as_xml(self): r = [ Resource(uri='a', lastmod='2014-04-14', length=14), Resource(uri='b', lastmod='2015-05-15', length=15), Resource(uri='c', lastmod='2016-06-16', length=16) ] lb = ListBaseWithIndex(resources=r) lb.max_sitemap_entries = 3 # One file xml = lb.as_xml() self.assertTrue(re.search(r'<urlset ', xml)) self.assertTrue(re.search(r'<loc>a</loc>', xml)) self.assertTrue(re.search(r'<loc>b</loc>', xml)) self.assertTrue(re.search(r'<loc>c</loc>', xml)) # Needs multifile bit not allowed lb.max_sitemap_entries = 1 self.assertRaises(ListBaseIndexError, lb.as_xml) # Allow multifile... xml = lb.as_xml(allow_multifile=True) self.assertTrue(re.search(r'<sitemapindex', xml)) self.assertTrue(re.search(r'<loc>/tmp/sitemap00001.xml</loc>', xml)) self.assertTrue(re.search(r'<loc>/tmp/sitemap00002.xml</loc>', xml)) self.assertFalse(re.search(r'<loc>/tmp/sitemap00003.xml</loc>', xml))
def test02_print_iter(self): r = [Resource(uri='a', lastmod='2001-01-01', length=1234), Resource(uri='b', lastmod='2002-02-02', length=56789), Resource(uri='c', lastmod='2003-03-03', length=0)] # without setting count will barf on len() attempt lb = ListBaseWithIndex(resources=iter(r)) self.assertRaises(TypeError, lb.as_xml) # set explicit count larger than max_sitemap_entiries and as_xml will # throw exception lb = ListBaseWithIndex(resources=iter(r), count=3) lb.max_sitemap_entries = 2 self.assertRaises(ListBaseIndexError, lb.as_xml) # set explicit count and all will be OK lb = ListBaseWithIndex(resources=iter(r), count=3) lb.md['from'] = None # avoid now being added self.assertEqual(lb.as_xml(), '<?xml version=\'1.0\' encoding=\'UTF-8\'?>\n<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:rs="http://www.openarchives.org/rs/terms/"><rs:md capability="unknown" /><url><loc>a</loc><lastmod>2001-01-01T00:00:00Z</lastmod><rs:md length="1234" /></url><url><loc>b</loc><lastmod>2002-02-02T00:00:00Z</lastmod><rs:md length="56789" /></url><url><loc>c</loc><lastmod>2003-03-03T00:00:00Z</lastmod><rs:md length="0" /></url></urlset>')
def test_08_print_iter(self): r = [ Resource(uri='a',lastmod='2001-01-01',length=1234), Resource(uri='b',lastmod='2002-02-02',length=56789), Resource(uri='c',lastmod='2003-03-03',length=0) ] # without setting count will barf on len() attempt lb = ListBaseWithIndex( resources=iter(r) ) self.assertRaises( TypeError, lb.as_xml ) # set explicit count larger than max_sitemap_entiries and as_xml will throw exception lb = ListBaseWithIndex( resources=iter(r), count=3 ) lb.max_sitemap_entries = 2 self.assertRaises( ListBaseIndexError, lb.as_xml ) # set explicit count and all will be OK lb = ListBaseWithIndex( resources=iter(r), count=3 ) lb.md['from']=None #avoid now being added #print lb self.assertEqual( lb.as_xml(), '<?xml version=\'1.0\' encoding=\'UTF-8\'?>\n<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:rs="http://www.openarchives.org/rs/terms/"><rs:md capability="unknown" /><url><loc>a</loc><lastmod>2001-01-01T00:00:00Z</lastmod><rs:md length="1234" /></url><url><loc>b</loc><lastmod>2002-02-02T00:00:00Z</lastmod><rs:md length="56789" /></url><url><loc>c</loc><lastmod>2003-03-03T00:00:00Z</lastmod><rs:md length="0" /></url></urlset>' )