def _fill_db(self): tadm = DBSession.query(User).filter_by(user_name=u'test_admin').one() language = Language(u'xx', u'test language') DBSession.add(language) DBSession.flush() languageid = language.id return languageid, tadm
def _fill_db(self): language = Language(u'xx', u'test language') DBSession.add(language) DBSession.flush() languageid = language.id transaction.commit() return languageid.encode()
def test_article(self): """controllers.admin.Controller.article is working properly""" languageid, tadm = self._fill_db() cat = Category(u'test_category', u'xx') DBSession.add(cat) article = Article(u'A Test Article!', cat, u'xx', tadm, u'random text') DBSession.add(article) DBSession.flush() categoryid = cat.id articleid = article.id transaction.commit() environ = {'REMOTE_USER': '******'} response = self.app.get('/admin/article/', extra_environ=environ, status=200) tr = response.html.table.find('tr', articleid) # Date eq_(str(tr('td')[1]), '<td>test_category</td>') eq_(str(tr('td')[2]), '<td>%s</td>' % articleid) eq_(str(tr('td')[3]), '<td>A Test Article!</td>') eq_(str(tr('td')[4]), '<td></td>') eq_(str(tr('td')[5]), '<td>%s</td>' % languageid) # Status actions = tr('td')[7] eq_(str(actions('a')[0]['class']), 'icon edit') eq_(str(actions('a')[1]['class']), 'icon delete overlay') eq_(str(actions('a')[2]['class']), 'icon publish')
def test_comment(self): """controllers.admin.Controller.comment is working properly""" languageid, tadm = self._fill_db() comment = Comment(u'anonymous', u'*****@*****.**', u'test comment') DBSession.add(comment) DBSession.flush() commentid = comment.id transaction.commit() environ = {'REMOTE_USER': '******'} response = self.app.get('/admin/comment/', extra_environ=environ, status=200) tr = response.html.table('tr')[1] # Date eq_(str(tr('td')[1]), '<td>%s</td>' % commentid) eq_(str(tr('td')[2]), '<td></td>') eq_(str(tr('td')[3]), '<td>anonymous</td>') eq_(str(tr('td')[4]), '<td>[email protected]</td>') eq_(str(tr('td')[5]), '<td>test comment</td>') # Status actions = tr('td')[7] eq_(str(actions('a')[0]['class']), 'icon edit overlay') eq_(str(actions('a')[1]['class']), 'icon delete overlay') eq_(str(actions('a')[2]['class']), 'icon approve') eq_(str(actions('a')[3]['class']), 'icon spam')
def test_banner_set(self): """controllers.admin.Controller.banner_set is working properly""" languageid, tadm = self._fill_db() media = Media(u'image', u'test image', u'/test.png', tadm, u'xx', u'random text') DBSession.add(media) link = Link(u'test link', u'http://example.com', tadm, u'xx', u'random text') DBSession.add(link) DBSession.flush() mediaid = media.id linkid = link.id transaction.commit() environ = {'REMOTE_USER': '******'} response = self.app.post('/admin/banner_set', dict(mediaid=mediaid, linkid=linkid, ), extra_environ=environ, status=302) #redirected = response.follow(extra_environ=environ, status=200) bc = DBSession.query(BannerContent).first() eq_(bc.media_id, mediaid) eq_(bc.link_id, linkid)
def post(self, name, languageid): """create a new Tag""" user = tmpl_context.user tag = Tag(name, languageid) DBSession.add(tag) flash('%s %s' % (_('Created Tag:'), tag.id), 'ok') return dict(redirect_to=url('/admin/tag/'))
def do_get_dependencies(self): try: self.language = content.Language(id=u'xx', name=u'test_lang') DBSession.add(self.language) DBSession.flush() return dict(lang=self.language.id, ) except: DBSession.rollback() raise
def post(self, mediatype, languageid, name, uri=None, uploadfile=None, fallbackfile=None, description=None, tagids=None): """create a new Media""" user = tmpl_context.user lang = tmpl_context.lang or DBSession.query(Language).first().id # TODO: redirect to "new" with errors instead of raising an exception if mediatype == 'image': if uploadfile is None: raise HTTPClientError(_('No image uploaded')) origname, ext = os.path.splitext(uploadfile.filename) filename = '%s%s' % (make_id(name), ext) tmpf = open(os.path.join(G.upload_dir, filename), 'w+b') shutil.copyfileobj(uploadfile.file, tmpf) tmpf.close() uri = filename elif mediatype == 'video': if uploadfile is None or fallbackfile is None: raise HTTPClientError(_('No video or no fallback uploaded')) # copy video file in the upload area origname, ext = os.path.splitext(uploadfile.filename) filename = '%s%s' % (make_id(name), ext) tmpf = open(os.path.join(G.upload_dir, filename), 'w+b') shutil.copyfileobj(uploadfile.file, tmpf) tmpf.close() # copy fallback video file in the upload area origname, fallbackext = os.path.splitext(fallbackfile.filename) fallbackname = '%s%s' % (make_id(name), fallbackext) fallbacktmpf = open(os.path.join(G.upload_dir, fallbackname), 'w+b') shutil.copyfileobj(fallbackfile.file, fallbacktmpf) fallbacktmpf.close() uri = filename elif mediatype == 'youtube': if not uri: raise HTTPClientError(_('No video id')) elif mediatype == 'vimeo': if not uri: raise HTTPClientError(_('No video id')) media = Media(mediatype, name, uri, user, languageid, description) DBSession.add(media) tags = tags_from_string(tagids, lang=lang) media.tags[:] = tags flash('%s %s' % (_('Created Media:'), media.id), 'ok') return dict(redirect_to=url('/admin/media/'))
def _fill_db(self): language = Language(u'xx', u'test_langugage') DBSession.add(language) tag = Tag(u'test tag', u'xx') DBSession.add(tag) DBSession.flush() languageid = language.id tagid = tag.id transaction.commit() return languageid, tagid.encode()
def _fill_db(self): language = Language(u'xx', u'test_langugage') DBSession.add(language) cat = Category(u'test category', u'xx', u'a test category') DBSession.add(cat) DBSession.flush() languageid = language.id categoryid = cat.id transaction.commit() return languageid, categoryid.encode()
def post(self, name, uri, languageid, description=None, tagids=None): """create a new Link""" user = tmpl_context.user lang = tmpl_context.lang or DBSession.query(Language).first().id link = Link(name, uri, user, languageid, description) DBSession.add(link) tags = tags_from_string(tagids, lang=lang) link.tags[:] = tags flash('%s %s' % (_('Created Link:'), link.id), 'ok') return dict(redirect_to=url('/admin/link/'))
def setUp(self): """Prepare model test fixture.""" try: new_attrs = {} new_attrs.update(self.attrs) new_attrs.update(self.do_get_dependencies()) self.obj = self.klass(**new_attrs) DBSession.add(self.obj) DBSession.flush() return self.obj except: DBSession.rollback() raise
def post(self, title, categoryid, languageid, text=None, tagids=None): """create a new Article""" user = tmpl_context.user lang = tmpl_context.lang or DBSession.query(Language).first().id category = DBSession.query(Category).get(categoryid) article = Article(title, category, languageid, user, text) DBSession.add(article) tags = tags_from_string(tagids, lang=lang) article.tags[:] = tags flash('%s %s' % (_('Created Article:'), article.id), 'ok') return dict(redirect_to=url('/admin/article/'))
def tags_from_string(s, create=True, lang=None): if lang is None: lang = DBSession.query(Language).first().id alltags = dict([(t.id, t) for t in DBSession.query(Tag)]) alltagsdata = dict([(d.name, d) for d in DBSession.query(TagData)]) tagnames = s and s.split(', ') or [] tags = [] for tagname in tagnames: if tagname in alltags: tag = alltags[tagname] elif tagname in alltagsdata: tag = alltagsdata[tagname].parent elif create: tag = Tag(tagname, lang) DBSession.add(tag) tags.append(tag) return tags
def test_tag(self): """controllers.admin.Controller.tag is working properly""" languageid, tadm = self._fill_db() tag = Tag(u'test tag', u'xx') DBSession.add(tag) DBSession.flush() tagid = tag.id transaction.commit() environ = {'REMOTE_USER': '******'} response = self.app.get('/admin/tag/', extra_environ=environ, status=200) tr = response.html.table('tr')[1] eq_(str(tr('td')[0]), '<td>%s</td>' % tagid) eq_(str(tr('td')[1]), '<td>test tag</td>') eq_(str(tr('td')[2]), '<td>%s</td>' % languageid) actions = tr('td')[3] eq_(str(actions('a')[0]['class']), 'icon edit overlay') eq_(str(actions('a')[1]['class']), 'icon delete overlay')
def test_category(self): """controllers.admin.Controller.category is working properly""" languageid, tadm = self._fill_db() category = Category(u'test category', u'xx', u'a test category') DBSession.add(category) DBSession.flush() categoryid = category.id transaction.commit() environ = {'REMOTE_USER': '******'} response = self.app.get('/admin/category/', extra_environ=environ, status=200) tr = response.html.table.find('tr', categoryid) eq_(str(tr('td')[0]), '<td>%s</td>' % categoryid) eq_(str(tr('td')[1]), '<td>test category</td>') eq_(str(tr('td')[2]), '<td>a test category</td>') eq_(str(tr('td')[3]), '<td>%s</td>' % languageid) actions = tr('td')[4] eq_(str(actions('a')[0]['class']), 'icon edit overlay') eq_(str(actions('a')[1]['class']), 'icon delete overlay')
def settings_set(self, name=None, value=None): """Set settings values""" query = DBSession.query(Setting) settings = dict([(s.id, s) for s in query]) if not len(name) == len(value): raise HTTPBadRequest("names and values don't match") modified = False for n, v in zip(name, value): if n in settings: if not settings[n].value == v: settings[n].value = v modified = True else: DBSession.add(Setting(n, v)) modified = True if modified: flash(_('Updated Settings'), 'ok') else: flash(_('Settings are unchanged'), 'info') redirect(url('/admin/settings/'))
def test_link(self): """controllers.admin.Controller.link is working properly""" languageid, tadm = self._fill_db() link = Link(u'test link', u'http://example.com', tadm, u'xx', u'random text') DBSession.add(link) DBSession.flush() linkid = link.id transaction.commit() environ = {'REMOTE_USER': '******'} response = self.app.get('/admin/link/', extra_environ=environ, status=200) tr = response.html.table('tr')[1] eq_(str(tr('td')[0]), '<td>%s</td>' % linkid) eq_(str(tr('td')[1]), '<td>test link</td>') eq_(str(tr('td')[2]), '<td>http://example.com</td>') eq_(str(tr('td')[3]), '<td></td>') eq_(str(tr('td')[4]), '<td>%s</td>' % languageid) actions = tr('td')[5] eq_(str(actions('a')[0]['class']), 'icon edit overlay') eq_(str(actions('a')[1]['class']), 'icon delete overlay')
def _fill_db(self): tadm = DBSession.query(User).filter_by(user_name=u'test_admin').one() language = Language(u'xx', u'test_langugage') DBSession.add(language) cat = Category(u'test_category', u'xx') DBSession.add(cat) tag = Tag(u'test_tag', u'xx') DBSession.add(tag) article = Article(u'A Test Article!', cat, u'xx', tadm, u'random text') article.tags.append(tag) DBSession.add(article) DBSession.flush() categoryid = cat.id articleid = article.id languageid = language.id transaction.commit() return languageid, categoryid, articleid.encode()
def test_media(self): """controllers.admin.Controller.media is working properly""" languageid, tadm = self._fill_db() media = Media(u'image', u'test image', u'/test.png', tadm, u'xx', u'random text') DBSession.add(media) DBSession.flush() mediaid = media.id transaction.commit() environ = {'REMOTE_USER': '******'} response = self.app.get('/admin/media/', extra_environ=environ, status=200) tr = response.html.table('tr')[1] eq_(str(tr('td')[0]), '<td>%s</td>' % mediaid) eq_(str(tr('td')[1]), '<td>image</td>') eq_(str(tr('td')[2]), '<td>test image</td>') eq_(str(tr('td')[3]), '<td>/test.png</td>') eq_(str(tr('td')[4]), '<td></td>') eq_(str(tr('td')[5]), '<td>%s</td>' % languageid) actions = tr('td')[6] eq_(str(actions('a')[0]['class']), 'icon edit overlay') eq_(str(actions('a')[1]['class']), 'icon delete overlay')
def do_get_dependencies(self): try: user = auth.User(user_name=u'test_user') DBSession.add(user) language = content.Language(id=u'xx', name=u'test_lang') DBSession.add(language) self.media = content.Media(u'image', u'test_image', u'test.png', user, u'xx') DBSession.add(self.media) self.link = content.Link(u'test_link', u'http://example.com', user, u'xx') DBSession.add(self.link) DBSession.flush() return dict( media=self.media, link=self.link, ) except: DBSession.rollback() raise
def _fill_db(self): tadm = DBSession.query(User).filter_by(user_name=u'test_admin').one() language = Language(u'xx', u'test_langugage') DBSession.add(language) tag = Tag(u'test_tag', u'xx') DBSession.add(tag) link = Link(u'test link', u'http://example.com', tadm, u'xx', u'random text') link.tags.append(tag) DBSession.add(link) DBSession.flush() languageid = language.id linkid = link.id transaction.commit() return languageid, linkid.encode()
def _fill_db(self): tadm = DBSession.query(User).filter_by(user_name=u'test_admin').one() language = Language(u'xx', u'test_langugage') DBSession.add(language) link = Link(u'test link', u'http://example.com', tadm, u'xx', u'random text') DBSession.add(link) comment = Comment(u'anonymous', u'*****@*****.**', u'test comment') DBSession.add(comment) link.comments.append(comment) DBSession.flush() associableid = link.associable.id commentid = comment.id transaction.commit() return associableid, commentid
def _fill_db(self): tadm = DBSession.query(User).filter_by(user_name=u'test_admin').one() language = Language(u'xx', u'test_langugage') DBSession.add(language) tag = Tag(u'test_tag', u'xx') DBSession.add(tag) media = Media(u'image', u'test image', u'/test.png', tadm, u'xx', u'random text') media.tags.append(tag) DBSession.add(media) DBSession.flush() languageid = language.id mediaid = media.id transaction.commit() return languageid, mediaid.encode()
def do_get_dependencies(self): try: self.user = auth.User(user_name=u'test_user') DBSession.add(self.user) self.language = content.Language(id=u'xx', name=u'test_lang') DBSession.add(self.language) self.category = content.Category(u'test category', u'xx') DBSession.add(self.category) DBSession.flush() return dict(title=u"A test article!", category=self.category, user=self.user, #language=self.language, lang=self.language.id, text = u"random text" ) except: DBSession.rollback() raise
def do_get_dependencies(self): try: self.user = auth.User(user_name=u'test_user') DBSession.add(self.user) self.language = content.Language(id=u'xx', name=u'test_lang') DBSession.add(self.language) self.category = content.Category(u'test category', u'xx') DBSession.add(self.category) DBSession.flush() return dict( title=u"A test article!", category=self.category, user=self.user, #language=self.language, lang=self.language.id, text=u"random text") except: DBSession.rollback() raise
def post(self, languageid, name): """create a new Language""" language = Language(languageid, name) DBSession.add(language) flash('%s %s' % (_('Created Language:'), language.id), 'ok') return dict(redirect_to=url('/admin/language/'))
def post(self, name, languageid, description): """create a new Category""" category = Category(name, languageid, description) DBSession.add(category) flash('%s %s' % (_('Created Category:'), category.id), 'ok') return dict(redirect_to=url('/admin/category/'))