def test01_print(self): lb = ListBaseWithIndex() lb.add(Resource(uri='a', lastmod='2001-01-01', length=1234)) lb.add(Resource(uri='b', lastmod='2002-02-02', length=56789)) lb.add(Resource(uri='c', lastmod='2003-03-03', length=0)) 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 get_change_dump_index(self): """ Delete unregister bucket by pid. Arguments: Returns: None. """ if not self._validation(): return None changedump = ListBaseWithIndex(capability_name='changedump', ) changedump.up = INVENIO_CAPABILITY_URL.format(request.url_root) published_date = self.publish_date or datetime.datetime.utcnow() change_date = published_date day_now = datetime.datetime.now() while change_date < day_now: until = change_date + timedelta(days=self.interval_by_date) if until > day_now: until = day_now change = Resource( '{}/{}/changedump.xml'.format(self.url_path, change_date.strftime(r"%Y%m%d")), capability='changedump', md_from=str( change_date.replace( tzinfo=datetime.timezone.utc).isoformat()), md_until=str( until.replace(tzinfo=datetime.timezone.utc).isoformat())) changedump.add(change) change_date = until return changedump.as_xml()
def test_08_print(self): lb = ListBaseWithIndex() lb.add( Resource(uri='a',lastmod='2001-01-01',length=1234) ) lb.add( Resource(uri='b',lastmod='2002-02-02',length=56789) ) lb.add( Resource(uri='c',lastmod='2003-03-03',length=0) ) 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>' )
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 render_well_know_resourcesync(): """Generate source description xml.""" cap = ListBaseWithIndex(capability_name='description', ln=[{ 'href': request.url_root, 'rel': 'describedby' }]) cap.add( Resource('{}resync/capability.xml'.format(request.url_root), capability='capability')) return cap.as_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>' )