def test_pagination(self): self.app.config['SERVER_NAME'] = 'www.example.com' self.app.config['SITEMAP_INCLUDE_RULES_WITHOUT_PARAMS'] = True self.app.config['SITEMAP_MAX_URL_COUNT'] = 10 sitemap = Sitemap(app=self.app) now = datetime.now().isoformat() @self.app.route('/') def index(): pass @self.app.route('/first') def first(): pass @self.app.route('/second') def second(): pass @self.app.route('/<username>') def user(username): pass @sitemap.register_generator def user(): for number in range(20): yield 'user', {'username': '******'.format(number)} directory = mkdtemp() manager = Manager(self.app) manager.add_command('sitemap', script.Sitemap()) try: manager.handle('manage.py', ['sitemap', '-o', directory]) with self.app.test_client() as c: data = c.get('/sitemap.xml').data data1 = c.get('/sitemap1.xml').data assert b('sitemapindex') in data assert len(data1) > 0 with open(os.path.join(directory, 'sitemap.xml'), 'r') as f: assert b(f.read()) == data with open(os.path.join(directory, 'sitemap1.xml'), 'r') as f: assert b(f.read()) == data1 finally: shutil.rmtree(directory)
def test_decorators_order(self): def first(dummy): return lambda *args, **kwargs: 'first' def second(dummy): return lambda *args, **kwargs: 'second' def third(dummy): return lambda *args, **kwargs: 'third' self.app.config['SITEMAP_VIEW_DECORATORS'] = [ first, second, 'tests.helpers.dummy_decorator'] sitemap = Sitemap(app=self.app) assert first in sitemap.decorators assert second in sitemap.decorators with self.app.test_client() as c: assert b('dummy') == c.get('/sitemap.xml').data sitemap.decorators.append(third) with self.app.test_client() as c: assert b('third') == c.get('/sitemap.xml').data
def test_empty_generator(self): Sitemap(app=self.app) with self.app.test_client() as c: assert b('loc') not in c.get('/sitemap.xml').data