def setup_repositories(): """Setup repositories.""" from pybossa.repositories import UserRepository from pybossa.repositories import ProjectRepository from pybossa.repositories import BlogRepository from pybossa.repositories import TaskRepository from pybossa.repositories import AuditlogRepository from pybossa.repositories import WebhookRepository from pybossa.repositories import ResultRepository from pybossa.repositories import UserScoreRepository global user_repo global project_repo global blog_repo global task_repo global auditlog_repo global webhook_repo global result_repo global user_score_repo user_repo = UserRepository(db) project_repo = ProjectRepository(db) blog_repo = BlogRepository(db) task_repo = TaskRepository(db) auditlog_repo = AuditlogRepository(db) webhook_repo = WebhookRepository(db) result_repo = ResultRepository(db) user_score_repo = UserScoreRepository(db)
def setup_repositories(app): """Setup repositories.""" from pybossa.repositories import UserRepository from pybossa.repositories import ProjectRepository from pybossa.repositories import ProjectStatsRepository from pybossa.repositories import AnnouncementRepository from pybossa.repositories import BlogRepository from pybossa.repositories import TaskRepository from pybossa.repositories import AuditlogRepository from pybossa.repositories import WebhookRepository from pybossa.repositories import ResultRepository from pybossa.repositories import HelpingMaterialRepository global user_repo global project_repo global project_stats_repo global announcement_repo global blog_repo global task_repo global auditlog_repo global webhook_repo global result_repo global helping_repo language = app.config.get('FULLTEXTSEARCH_LANGUAGE') user_repo = UserRepository(db) project_repo = ProjectRepository(db) project_stats_repo = ProjectStatsRepository(db) announcement_repo = AnnouncementRepository(db) blog_repo = BlogRepository(db) task_repo = TaskRepository(db, language) auditlog_repo = AuditlogRepository(db) webhook_repo = WebhookRepository(db) result_repo = ResultRepository(db) helping_repo = HelpingMaterialRepository(db)
def setup_repositories(): from pybossa.repositories import UserRepository from pybossa.repositories import ProjectRepository from pybossa.repositories import BlogRepository from pybossa.repositories import TaskRepository from pybossa.repositories import AuditlogRepository global user_repo global project_repo global blog_repo global task_repo global auditlog_repo user_repo = UserRepository(db) project_repo = ProjectRepository(db) blog_repo = BlogRepository(db) task_repo = TaskRepository(db) auditlog_repo = AuditlogRepository(db)
def test_delete_also_removes_dependant_resources(self): """Test delete removes project tasks and taskruns too""" from factories import TaskFactory, TaskRunFactory, BlogpostFactory from pybossa.repositories import TaskRepository, BlogRepository project = ProjectFactory.create() task = TaskFactory.create(project=project) taskrun = TaskRunFactory.create(task=task) blogpost = BlogpostFactory.create(project=project) self.project_repo.delete(project) deleted_task = TaskRepository(db).get_task(task.id) deleted_taskrun = TaskRepository(db).get_task_run(taskrun.id) deleted_blogpost = BlogRepository(db).get(blogpost.id) assert deleted_task is None, deleted_task assert deleted_taskrun is None, deleted_taskrun
def setup_repositories(app): """Setup repositories.""" from pybossa.repositories import UserRepository from pybossa.repositories import ProjectRepository from pybossa.repositories import ProjectStatsRepository from pybossa.repositories import AnnouncementRepository from pybossa.repositories import BlogRepository from pybossa.repositories import TaskRepository from pybossa.repositories import AuditlogRepository from pybossa.repositories import WebhookRepository from pybossa.repositories import ResultRepository from pybossa.repositories import HelpingMaterialRepository from pybossa.repositories import PerformanceStatsRepository global user_repo global project_repo global project_stats_repo global announcement_repo global blog_repo global task_repo global auditlog_repo global webhook_repo global result_repo global helping_repo global performance_stats_repo language = app.config.get('FULLTEXTSEARCH_LANGUAGE') rdancy_upd_exp = app.config.get('REDUNDANCY_UPDATE_EXPIRATION', 30) user_repo = UserRepository(db) project_repo = ProjectRepository(db) project_stats_repo = ProjectStatsRepository(db) announcement_repo = AnnouncementRepository(db) blog_repo = BlogRepository(db) task_repo = TaskRepository(db, language, rdancy_upd_exp) auditlog_repo = AuditlogRepository(db) webhook_repo = WebhookRepository(db) result_repo = ResultRepository(db) helping_repo = HelpingMaterialRepository(db) performance_stats_repo = PerformanceStatsRepository(db)
# You should have received a copy of the GNU Affero General Public License # along with PYBOSSA. If not, see <http://www.gnu.org/licenses/>. from pybossa.core import db import factory from pybossa.repositories import UserRepository from pybossa.repositories import ProjectRepository from pybossa.repositories import BlogRepository from pybossa.repositories import TaskRepository from pybossa.repositories import AuditlogRepository from pybossa.repositories import WebhookRepository user_repo = UserRepository(db) project_repo = ProjectRepository(db) blog_repo = BlogRepository(db) task_repo = TaskRepository(db) auditlog_repo = AuditlogRepository(db) webhook_repo = WebhookRepository(db) def reset_all_pk_sequences(): ProjectFactory.reset_sequence() BlogpostFactory.reset_sequence() CategoryFactory.reset_sequence() TaskFactory.reset_sequence() TaskRunFactory.reset_sequence() UserFactory.reset_sequence() AuditlogFactory.reset_sequence() WebhookFactory.reset_sequence()
def setUp(self): super(TestBlogRepository, self).setUp() self.blog_repo = BlogRepository(db)
class TestBlogRepository(Test): def setUp(self): super(TestBlogRepository, self).setUp() self.blog_repo = BlogRepository(db) @with_context def test_get_return_none_if_no_blogpost(self): """Test get method returns None if there is no blogpost with the specified id""" blogpost = self.blog_repo.get(2) assert blogpost is None, blogpost @with_context def test_get_returns_blogpost(self): """Test get method returns a blogpost if exists""" blogpost = BlogpostFactory.create() retrieved_blogpost = self.blog_repo.get(blogpost.id) assert blogpost == retrieved_blogpost, retrieved_blogpost @with_context def test_get_by(self): """Test get_by returns a blogpost with the specified attribute""" blogpost = BlogpostFactory.create(title='My blog', body='myblogpost') retrieved_blogpost = self.blog_repo.get_by(title=blogpost.title) assert blogpost == retrieved_blogpost, retrieved_blogpost @with_context def test_get_by_returns_none_if_no_blogpost(self): """Test get_by returns None if no blogpost matches the query""" BlogpostFactory.create(title='My blog', body='myblogpost') blogpost = self.blog_repo.get_by(title='notitle') assert blogpost is None, blogpost @with_context def test_filter_by_no_matches(self): """Test filter_by returns an empty list if no blogposts match the query""" BlogpostFactory.create(title='My blog', body='myblogpost') retrieved_blogposts = self.blog_repo.filter_by(title='no title') assert isinstance(retrieved_blogposts, list) assert len(retrieved_blogposts) == 0, retrieved_blogposts @with_context def test_filter_by_one_condition(self): """Test filter_by returns a list of blogposts that meet the filtering condition""" BlogpostFactory.create_batch(3, title='my blogpost') should_be_missing = BlogpostFactory.create(title='another blogpost') retrieved_blogposts = self.blog_repo.filter_by(title='my blogpost') assert len(retrieved_blogposts) == 3, retrieved_blogposts assert should_be_missing not in retrieved_blogposts, retrieved_blogposts @with_context def test_filter_by_limit_offset(self): """Test that filter_by supports limit and offset options""" BlogpostFactory.create_batch(4) all_blogposts = self.blog_repo.filter_by() first_two = self.blog_repo.filter_by(limit=2) last_two = self.blog_repo.filter_by(limit=2, offset=2) assert len(first_two) == 2, first_two assert len(last_two) == 2, last_two assert first_two == all_blogposts[:2] assert last_two == all_blogposts[2:] @with_context def test_filter_by_multiple_conditions(self): """Test filter_by supports multiple-condition queries""" BlogpostFactory.create(title='my blogpost', body='body') blogpost = BlogpostFactory.create(title='my blogpost', body='other body') retrieved_blogposts = self.blog_repo.filter_by(title='my blogpost', body='other body') assert len(retrieved_blogposts) == 1, retrieved_blogposts assert blogpost in retrieved_blogposts, retrieved_blogposts @with_context @with_context @patch('pybossa.repositories.blog_repository.clean_project') def test_save(self, clean_project_mock): """Test save persist the blogpost""" blogpost = BlogpostFactory.build() assert self.blog_repo.get(blogpost.id) is None self.blog_repo.save(blogpost) assert self.blog_repo.get(blogpost.id) == blogpost, "Blogpost not saved" clean_project_mock.assert_called_with(blogpost.project_id) @with_context def test_save_fails_if_integrity_error(self): """Test save raises a DBIntegrityError if the instance to be saved lacks a required value""" blogpost = BlogpostFactory.build(title=None) assert_raises(DBIntegrityError, self.blog_repo.save, blogpost) @with_context def test_save_only_saves_blogposts(self): """Test save raises a WrongObjectError when an object which is not a Blogpost instance is saved""" bad_object = dict() assert_raises(WrongObjectError, self.blog_repo.save, bad_object) @with_context @patch('pybossa.repositories.blog_repository.clean_project') def test_update(self, clean_project_mock): """Test update persists the changes made to the blogpost""" blogpost = BlogpostFactory.create(body='this is a blogpost') blogpost.body = 'new content' self.blog_repo.update(blogpost) updated_blogpost = self.blog_repo.get(blogpost.id) assert updated_blogpost.body == 'new content', updated_blogpost clean_project_mock.assert_called_with(blogpost.project_id) @with_context def test_update_fails_if_integrity_error(self): """Test update raises a DBIntegrityError if the instance to be updated lacks a required value""" blogpost = BlogpostFactory.create() blogpost.title = None assert_raises(DBIntegrityError, self.blog_repo.update, blogpost) @with_context def test_update_only_updates_blogposts(self): """Test update raises a WrongObjectError when an object which is not a Blogpost instance is updated""" bad_object = dict() assert_raises(WrongObjectError, self.blog_repo.update, bad_object) @with_context @patch('pybossa.repositories.blog_repository.clean_project') def test_delete(self, clean_project_mock): """Test delete removes the blogpost instance""" blogpost = BlogpostFactory.create() self.blog_repo.delete(blogpost) deleted = self.blog_repo.get(blogpost.id) assert deleted is None, deleted clean_project_mock.assert_called_with(blogpost.project_id) @with_context def test_delete_only_deletes_blogposts(self): """Test delete raises a WrongObjectError if is requested to delete other than a blogpost""" bad_object = dict() assert_raises(WrongObjectError, self.blog_repo.delete, bad_object)
class TestBlogRepository(Test): def setUp(self): super(TestBlogRepository, self).setUp() self.blog_repo = BlogRepository(db) def test_get_return_none_if_no_blogpost(self): """Test get method returns None if there is no blogpost with the specified id""" blogpost = self.blog_repo.get(2) assert blogpost is None, blogpost def test_get_returns_blogpost(self): """Test get method returns a blogpost if exists""" blogpost = BlogpostFactory.create() retrieved_blogpost = self.blog_repo.get(blogpost.id) assert blogpost == retrieved_blogpost, retrieved_blogpost def test_get_by(self): """Test get_by returns a blogpost with the specified attribute""" blogpost = BlogpostFactory.create(title='My blog', body='myblogpost') retrieved_blogpost = self.blog_repo.get_by(title=blogpost.title) assert blogpost == retrieved_blogpost, retrieved_blogpost def test_get_by_returns_none_if_no_blogpost(self): """Test get_by returns None if no blogpost matches the query""" BlogpostFactory.create(title='My blog', body='myblogpost') blogpost = self.blog_repo.get_by(title='notitle') assert blogpost is None, blogpost def test_filter_by_no_matches(self): """Test filter_by returns an empty list if no blogposts match the query""" BlogpostFactory.create(title='My blog', body='myblogpost') retrieved_blogposts = self.blog_repo.filter_by(title='no title') assert isinstance(retrieved_blogposts, list) assert len(retrieved_blogposts) == 0, retrieved_blogposts def test_filter_by_one_condition(self): """Test filter_by returns a list of blogposts that meet the filtering condition""" BlogpostFactory.create_batch(3, title='my blogpost') should_be_missing = BlogpostFactory.create(title='another blogpost') retrieved_blogposts = self.blog_repo.filter_by(title='my blogpost') assert len(retrieved_blogposts) == 3, retrieved_blogposts assert should_be_missing not in retrieved_blogposts, retrieved_blogposts def test_filter_by_limit_offset(self): """Test that filter_by supports limit and offset options""" BlogpostFactory.create_batch(4) all_blogposts = self.blog_repo.filter_by() first_two = self.blog_repo.filter_by(limit=2) last_two = self.blog_repo.filter_by(limit=2, offset=2) assert len(first_two) == 2, first_two assert len(last_two) == 2, last_two assert first_two == all_blogposts[:2] assert last_two == all_blogposts[2:] def test_filter_by_multiple_conditions(self): """Test filter_by supports multiple-condition queries""" BlogpostFactory.create(title='my blogpost', body='body') blogpost = BlogpostFactory.create(title='my blogpost', body='other body') retrieved_blogposts = self.blog_repo.filter_by(title='my blogpost', body='other body') assert len(retrieved_blogposts) == 1, retrieved_blogposts assert blogpost in retrieved_blogposts, retrieved_blogposts def test_save(self): """Test save persist the blogpost""" blogpost = BlogpostFactory.build() assert self.blog_repo.get(blogpost.id) is None self.blog_repo.save(blogpost) assert self.blog_repo.get(blogpost.id) == blogpost, "Blogpost not saved" def test_save_fails_if_integrity_error(self): """Test save raises a DBIntegrityError if the instance to be saved lacks a required value""" blogpost = BlogpostFactory.build(title=None) assert_raises(DBIntegrityError, self.blog_repo.save, blogpost) def test_save_only_saves_blogposts(self): """Test save raises a WrongObjectError when an object which is not a Blogpost instance is saved""" bad_object = dict() assert_raises(WrongObjectError, self.blog_repo.save, bad_object) def test_update(self): """Test update persists the changes made to the blogpost""" blogpost = BlogpostFactory.create(body='this is a blogpost') blogpost.body = 'new content' self.blog_repo.update(blogpost) updated_blogpost = self.blog_repo.get(blogpost.id) assert updated_blogpost.body == 'new content', updated_blogpost def test_update_fails_if_integrity_error(self): """Test update raises a DBIntegrityError if the instance to be updated lacks a required value""" blogpost = BlogpostFactory.create() blogpost.title = None assert_raises(DBIntegrityError, self.blog_repo.update, blogpost) def test_update_only_updates_blogposts(self): """Test update raises a WrongObjectError when an object which is not a Blogpost instance is updated""" bad_object = dict() assert_raises(WrongObjectError, self.blog_repo.update, bad_object) def test_delete(self): """Test delete removes the blogpost instance""" blogpost = BlogpostFactory.create() self.blog_repo.delete(blogpost) deleted = self.blog_repo.get(blogpost.id) assert deleted is None, deleted def test_delete_only_deletes_blogposts(self): """Test delete raises a WrongObjectError if is requested to delete other than a blogpost""" bad_object = dict() assert_raises(WrongObjectError, self.blog_repo.delete, bad_object)