def test_search_by_title_provided(self): project.Provided().post('foo', 'bar', User(id=1)) project.Provided().post('hello', 'world', User(id=1)) search_term = 'foo' clg = catalog.Catalog(search_term, True) clg.apply() self.assertEqual(len(clg.projects), 1) self.assertEqual(clg.projects[0].title, 'foo')
def setUp(self): self.session = self.Session() self.fake_project_list = [ 'these', "don't", 'need', 'to', 'be', 'real', 'projects' ] self.fake_catalog = catalog.Catalog() self.fake_catalog.projects = self.fake_project_list self.user = User(id=1, can_post_provided=True, can_post_solicited=True) project.Provided().post('foo', 'bar', self.user) project.Provided().post('nobody expects', 'the spanish inquisition', self.user) project.Provided().post('sperm whale', 'bowl of petunias', self.user)
def test_selected_project_lookup(self): # tests to see that get method works s = project.Provided() s.post('cookie', 'biscuit', User(can_post_provided=True)) s = project.Provided.get(1) self.assertIsNotNone(s) self.assertTrue(s.title == 'cookie' and s.description == 'biscuit')
def setUp(self): self.session = self.Session(bind=self.engine) self.user_args = { 'username': '******', 'password': '******', 'confirm_password': '******', 'email': '*****@*****.**', 'name': 'baz', 'is_admin': True, 'bio': 'test', 'contact_info': '*****@*****.**' } self.user = User(id=1, can_post_provided=True, can_post_solicited=True) project.Provided().post('foo', 'barbarba', self.user) project.Provided().post('Awesome', 'Force of Gravity', self.user) project.Provided().post('Cannon', 'Electric Beast', self.user)
def test_apply_chooses_correct_table(self): project.Provided().post('foo', 'bar', self.user) project.Solicited().post('your', 'mom', self.user) clg = catalog.Catalog('', False) clg.apply() self.assertEqual(len(clg.projects), 1) self.assertEqual(clg.projects[0].title, 'your') self.assertEqual(clg.projects[0].description, 'mom')
def test_apply_many_projects(self): project.Provided().post('foo', 'bar', User(id=1)) project.Provided().post('nobody expects', 'the spanish inquisition', User(id=1)) project.Provided().post('sperm whale', 'bowl of petunias', User(id=1)) clg = catalog.Catalog('', True) clg.apply() self.assertEqual(len(clg.projects), 3) projects = [] for proj in clg.projects: projects.append((proj.title, proj.description)) self.assertTrue(('foo', 'bar') in projects) self.assertTrue(('nobody expects', 'the spanish inquisition') in projects) self.assertTrue(('sperm whale', 'bowl of petunias') in projects)
def test_can_be_modified_by(self): u = User(can_post_provided=True) self.session.add(u) self.session.commit() p = project.Provided() p.post('foo', 'bar', u) p = project.Provided.get(1) self.assertTrue(p.can_be_modified_by(User(id=1, is_admin=False))) self.assertTrue(p.can_be_modified_by(User(id=2, is_admin=True))) self.assertFalse(p.can_be_modified_by(User(id=3, is_admin=False)))
def test_get_user_projects(self): user.User.sign_up(**self.user_args) self.user = user.User.log_in('foo', 'barbarba') new_user = User(id=2, can_post_provided=True, can_post_solicited=True) project.Provided().post('Test', 'Fire', new_user) project.Provided().post('Interesting', 'Facts', new_user) project.Provided().post('Fall', 'Food', new_user) clg = catalog.Catalog('', True) clg.apply() projects = self.user.get_user_projects() self.assertEqual(len(clg.projects), 6) self.assertEqual(len(projects), 3) self.assertEqual('foo', projects[0].title) self.assertEqual('Awesome', projects[1].title) self.assertEqual('Cannon', projects[2].title)
def test_project_post(self): p = project.Provided() p.post('foo', 'bar', User(can_post_provided=True)) results = self.session.query(project.Provided).all() self.assertEqual(len(results), 1) self.assertEqual(results[0].id, p.id) self.assertEqual(results[0].title, 'foo') self.assertEqual(results[0].description, 'bar') self.assertEqual(results[0].date, p.date) self.assertEqual(results[0].archived, False) self.assertEqual(results[0].needsReview, False)
def test_post_permissions(self): pp = project.Provided() ps = project.Solicited() up = User(can_post_provided=True, can_post_solicited=False) us = User(can_post_provided=False, can_post_solicited=True) with self.assertRaises(PermissionError): ps.post('foo', 'bar', up) with self.assertRaises(PermissionError): pp.post('foo', 'bar', us) pp.post('foo', 'bar', up) ps.post('foo', 'bar', us) self.assertEqual(len(self.session.query(project.Provided).all()), 1) self.assertEqual(len(self.session.query(project.Solicited).all()), 1)
def test_edit(self): u = User(can_post_provided=True) self.session.add(u) self.session.commit() project.Provided().post('foo', 'bar', u) p = project.Provided.get(1) p.edit(u, description='baz', this_isnt_real=4) p = project.Provided.get(1) self.assertEqual(p.title, 'foo') self.assertEqual(p.description, 'baz') with self.assertRaises(AttributeError): x = p.this_isnt_real with self.assertRaises(AttributeError): p.edit(u, id=3) u = User(can_post_provided=True, is_admin=False) self.session.add(u) self.session.commit() with self.assertRaises(PermissionError): p.edit(u, title='bar')