Example #1
0
File: post.py Project: ptpt/taoblog
 def test_tag(self):
     clojure = Post(title='clojure lisp',
                    text='',
                    slug='clojure-lisp',
                    author_id=1)
     scheme = Post(title='scheme lisp',
                   text='',
                   slug='scheme-lisp',
                   author_id=1)
     # post not added to session, raise error
     self.assertRaises(RuntimeError, clojure.add_tags, ['clojure'])
     self.assertRaises(RuntimeError, clojure.remove_tags, ['clojure'])
     self.assertRaises(RuntimeError, clojure.set_tags, ['clojure'])
     self.assertRaises(RuntimeError, clojure.clear_tags)
     self.session.add(clojure)
     self.session.add(scheme)
     # add tags
     # post     tags
     # clojure: Clojure, LISP
     # scheme:  Scheme, LISP
     self.assertEqual(clojure.add_tags(['Clojure'])[0].name, 'Clojure')
     self.assertEqual(clojure.add_tags(['LISP'])[0].name, 'LISP')
     self.assertEqual(set(clojure.tags), {'Clojure', 'LISP'})
     self.assertEqual(scheme.add_tags(['Scheme'])[0].name, 'Scheme')
     self.assertEqual(scheme.add_tags(['SCHEME']), [])  # no new tag added
     self.assertEqual(scheme.add_tags(['scheme']), [])  # no new tag added
     self.assertEqual(scheme.add_tags(['lisp'])[0].name, 'LISP')
     self.assertEqual(set(scheme.tags), {'Scheme', 'LISP'})
     self.assertEqual(set(clojure.tags), {'Clojure', 'LISP'})
     # remove tags
     scheme.remove_tags(['SCHEME'])
     self.assertIsNone(
         self.session.query(Tag).filter_by(name='Scheme').first())
     scheme.remove_tags(['lisp'])
     self.assertEqual(
         self.session.query(Tag).filter_by(name='LISP').first().name,
         'LISP')
     self.assertEqual(scheme.tags, [])
     # clear tags
     clojure.clear_tags()
     self.assertEqual(clojure.tags, [])
     self.assertIsNone(
         self.session.query(Tag).filter_by(name='Clojure').first())
     self.assertIsNone(self.session.query(Tag).first())
     scheme.set_tags(['SCHEME', 'LISP', 'Scheme', 'Lisp'])
     self.assertEqual(
         set(tag.name for tag in self.session.query(Tag).all()),
         {'SCHEME', 'LISP'})
     self.assertEqual(scheme.set_tags(['scheme', 'lisp', 'scheme', 'lisp']),
                      ([], []))  # add none, remove none
Example #2
0
 def test_tag(self):
     clojure = Post(title='clojure lisp', text='',
                    slug='clojure-lisp', author_id=1)
     scheme = Post(title='scheme lisp', text='',
                   slug='scheme-lisp', author_id=1)
     # post not added to session, raise error
     self.assertRaises(RuntimeError, clojure.add_tags, ['clojure'])
     self.assertRaises(RuntimeError, clojure.remove_tags, ['clojure'])
     self.assertRaises(RuntimeError, clojure.set_tags, ['clojure'])
     self.assertRaises(RuntimeError, clojure.clear_tags)
     self.session.add(clojure)
     self.session.add(scheme)
     # add tags
     # post     tags
     # clojure: Clojure, LISP
     # scheme:  Scheme, LISP
     self.assertEqual(clojure.add_tags(['Clojure'])[0].name, 'Clojure')
     self.assertEqual(clojure.add_tags(['LISP'])[0].name, 'LISP')
     self.assertEqual(set(clojure.tags), {'Clojure', 'LISP'})
     self.assertEqual(scheme.add_tags(['Scheme'])[0].name, 'Scheme')
     self.assertEqual(scheme.add_tags(['SCHEME']), []) # no new tag added
     self.assertEqual(scheme.add_tags(['scheme']), []) # no new tag added
     self.assertEqual(scheme.add_tags(['lisp'])[0].name, 'LISP')
     self.assertEqual(set(scheme.tags), {'Scheme', 'LISP'})
     self.assertEqual(set(clojure.tags), {'Clojure', 'LISP'})
     # remove tags
     scheme.remove_tags(['SCHEME'])
     self.assertIsNone(self.session.query(Tag).filter_by(name='Scheme').first())
     scheme.remove_tags(['lisp'])
     self.assertEqual(self.session.query(Tag).filter_by(name='LISP').first().name, 'LISP')
     self.assertEqual(scheme.tags, [])
     # clear tags
     clojure.clear_tags()
     self.assertEqual(clojure.tags, [])
     self.assertIsNone(self.session.query(Tag).filter_by(name='Clojure').first())
     self.assertIsNone(self.session.query(Tag).first())
     scheme.set_tags(['SCHEME', 'LISP', 'Scheme', 'Lisp'])
     self.assertEqual(set(tag.name for tag in self.session.query(Tag).all()), {'SCHEME', 'LISP'})
     self.assertEqual(scheme.set_tags(['scheme', 'lisp', 'scheme', 'lisp']), ([], []))  # add none, remove none