コード例 #1
0
ファイル: __init__.py プロジェクト: bloomberg/pybossa
    def test_is_sync_enabled(self):
        project_enabled = ProjectFactory.build(info={'sync': {'enabled': True}})
        project_enabled = project_enabled.__dict__
        project_disabled = ProjectFactory.build(info={'sync': {'enabled': False}})
        project_disabled = project_disabled.__dict__

        assert self.syncer.is_sync_enabled(project_enabled) == True
        assert self.syncer.is_sync_enabled(project_disabled) == False
コード例 #2
0
    def test_save(self):
        """Test save fails if the project has no password"""

        project = ProjectFactory.build()
        assert self.project_repo.get(project.id) is None

        assert_raises(BadRequest, self.project_repo.save, project)
コード例 #3
0
    def test_save_fails_if_integrity_error(self):
        """Test save raises a DBIntegrityError if the instance to be saved lacks
        a required value"""

        project = ProjectFactory.build(name=None)

        assert_raises(DBIntegrityError, self.project_repo.save, project)
コード例 #4
0
    def test_update_category_only_updates_categories(self):
        """Test update_category raises a WrongObjectError when an object which is
        not a Category instance is updated"""

        bad_object = ProjectFactory.build()

        assert_raises(WrongObjectError, self.project_repo.update_category, bad_object)
コード例 #5
0
    def test_undo_sync_without_cache(self, fake_requests, mock_update):
        user = UserFactory.create(admin=True, email_addr=u'*****@*****.**')
        project_syncer = ProjectSyncer(self.target_url, self.target_key)

        project = ProjectFactory.build(short_name=self.target_id)
        project_syncer.undo_sync(project)
        assert_raises(AssertionError, project_syncer._sync.assert_called)
コード例 #6
0
    def test_update_category_only_updates_categories(self):
        """Test update_category raises a WrongObjectError when an object which is
        not a Category instance is updated"""

        bad_object = ProjectFactory.build()

        assert_raises(WrongObjectError, self.project_repo.update_category, bad_object)
コード例 #7
0
    def test_save_fails_if_integrity_error(self):
        """Test save raises a DBIntegrityError if the instance to be saved lacks
        a required value"""

        project = ProjectFactory.build(name=None)

        assert_raises(DBIntegrityError, self.project_repo.save, project)
コード例 #8
0
    def test_undo_sync_with_cache(self, fake_requests, eock_update):
        user = UserFactory.create(admin=True, email_addr=u'*****@*****.**')
        project_syncer = ProjectSyncer(self.target_url, self.target_key)

        project = ProjectFactory.build(short_name=self.target_id)
        project_syncer.cache_target(create_target(), self.target_id)
        project_syncer.undo_sync(project)
        project_syncer._sync.assert_called_once()
コード例 #9
0
    def test_delete_autoimporter_works_as_expected(self):
        autoimporter = {'type': 'csv', 'csv_url': 'http://fakeurl.com'}
        project = ProjectFactory.build(info={'autoimporter': autoimporter})
        assert project.has_autoimporter() is True

        project.delete_autoimporter()

        assert project.has_autoimporter() is False, project.get_autoimporter()
コード例 #10
0
    def test_delete_autoimporter_works_as_expected(self):
        autoimporter = {"type": "csv", "csv_url": "http://fakeurl.com"}
        project = ProjectFactory.build(info={"autoimporter": autoimporter})
        assert project.has_autoimporter() is True

        project.delete_autoimporter()

        assert project.has_autoimporter() is False, project.get_autoimporter()
コード例 #11
0
    def test_set_autoimporter_works_as_expected(self):
        autoimporter = {"type": "csv", "csv_url": "http://fakeurl.com"}
        project = ProjectFactory.build(info={})
        assert project.has_autoimporter() is False

        project.set_autoimporter(autoimporter)

        assert project.get_autoimporter() == autoimporter, project.get_autoimporter()
コード例 #12
0
ファイル: test_model_project.py プロジェクト: PyBossa/pybossa
    def test_set_autoimporter_works_as_expected(self):
        autoimporter = {'type': 'csv', 'csv_url': 'http://fakeurl.com'}
        project = ProjectFactory.build(info={})
        assert project.has_autoimporter() is False

        project.set_autoimporter(autoimporter)

        assert project.get_autoimporter() == autoimporter, project.get_autoimporter()
コード例 #13
0
ファイル: test_model_project.py プロジェクト: PyBossa/pybossa
    def test_delete_autoimporter_works_as_expected(self):
        autoimporter = {'type': 'csv', 'csv_url': 'http://fakeurl.com'}
        project = ProjectFactory.build(info={'autoimporter': autoimporter})
        assert project.has_autoimporter() is True

        project.delete_autoimporter()

        assert project.has_autoimporter() is False, project.get_autoimporter()
コード例 #14
0
    def test_get_target_owners_if_project_not_exist_prod(self, fake_requests, mock_get_user_email, mock_get):
        user = UserFactory.create(admin=True, email_addr=u'*****@*****.**')
        project_syncer = ProjectSyncer(self.target_url, self.target_key)

        mock_get.return_value = create_target()
        project = ProjectFactory.build(short_name=self.target_id)
        project_syncer.get_target_owners(project, True)
        mock_get_user_email.assert_called()
コード例 #15
0
    def test_save(self):
        """Test save persist the project"""

        project = ProjectFactory.build()
        assert self.project_repo.get(project.id) is None

        self.project_repo.save(project)

        assert self.project_repo.get(project.id) == project, "Project not saved"
コード例 #16
0
    def test_assign_user_to_project_works_as_expected(self):
        project = ProjectFactory.build(info={})

        assign_users = [1, 3]
        project.set_project_users(assign_users)
        users = project.get_project_users()
        assert not project.info.get(
            'project_users'
        ), "User should not be assigned to project without access levels"
コード例 #17
0
    def test_set_autoimporter_works_as_expected(self):
        autoimporter = {'type': 'csv', 'csv_url': 'http://fakeurl.com'}
        project = ProjectFactory.build(info={})
        assert project.has_autoimporter() is False

        project.set_autoimporter(autoimporter)

        assert project.get_autoimporter(
        ) == autoimporter, project.get_autoimporter()
コード例 #18
0
    def test_save(self):
        """Test save persist the project"""

        project = ProjectFactory.build()
        assert self.project_repo.get(project.id) is None

        self.project_repo.save(project)

        assert self.project_repo.get(
            project.id) == project, "Project not saved"
コード例 #19
0
 def test_get_target_owners_if_project_exist_prod(self, fake_requests, mock_get, mock_get_target_user):
     user = UserFactory.create(admin=True, email_addr=u'*****@*****.**')
     project_syncer = ProjectSyncer(self.target_url, self.target_key)
     mock_get_target_user.return_value = create_response(True, 200, json.dumps({'email_addr': '*****@*****.**'}))
     mock_get.return_value = create_target()
     project = ProjectFactory.build(short_name=self.target_id)
     emails = project_syncer.get_target_owners(project, False)
     assert len(emails) == 3
     assert '*****@*****.**' in emails
     mock_get_target_user.assert_called()
コード例 #20
0
    def test_project_save_without_data_classification_fails(self):
        """Test save fails if the project has no data classification"""

        # project w/o data classification raises error
        project = ProjectFactory.build(info=dict())
        project.set_password('hello')
        assert self.project_repo.get(project.id) is None
        assert_raises(BadRequest, self.project_repo.save, project)

        # project w/o input data classification raises error
        project = ProjectFactory.build(info=dict(data_classification=dict(
            output_data="a")))
        project.set_password('hello')
        assert self.project_repo.get(project.id) is None
        assert_raises(BadRequest, self.project_repo.save, project)

        # project w/o output data classification raises error
        project = ProjectFactory.build(info=dict(data_classification=dict(
            input_data="a")))
        project.set_password('hello')
        assert self.project_repo.get(project.id) is None
        assert_raises(BadRequest, self.project_repo.save, project)

        # project w/ incorrect input data classification raises error
        project = ProjectFactory.build(info=dict(
            data_classification=dict(input_data="a", output_data="a")))
        project.set_password('hello')
        assert self.project_repo.get(project.id) is None
        assert_raises(BadRequest, self.project_repo.save, project)

        # project w/ incorrect output data classification raises error
        project = ProjectFactory.build(info=dict(data_classification=dict(
            input_data="L3 - community", output_data="a")))
        project.set_password('hello')
        assert self.project_repo.get(project.id) is None
        assert_raises(BadRequest, self.project_repo.save, project)
コード例 #21
0
ファイル: test_model_project.py プロジェクト: PyBossa/pybossa
    def test_get_autoimporter_returns_autoimporter(self):
        autoimporter = {'type': 'csv', 'csv_url': 'http://fakeurl.com'}
        project = ProjectFactory.build(info={'autoimporter': autoimporter})

        assert project.get_autoimporter() == autoimporter, project.get_autoimporter()
コード例 #22
0
    def test_has_autoimporter_returns_false_if_no_autoimporter(self):
        project = ProjectFactory.build(info={})

        assert project.has_autoimporter() is False
コード例 #23
0
    def test_get_autoimporter_returns_autoimporter(self):
        autoimporter = {'type': 'csv', 'csv_url': 'http://fakeurl.com'}
        project = ProjectFactory.build(info={'autoimporter': autoimporter})

        assert project.get_autoimporter(
        ) == autoimporter, project.get_autoimporter()
コード例 #24
0
    def test_check_password_bad_password(self, mock_signer):
        mock_signer.loads = lambda x: x
        project = ProjectFactory.build(info={'passwd_hash': 'mypassword'})

        assert not project.check_password('notmypassword')
コード例 #25
0
    def test_has_autoimporter_returns_true_if_autoimporter(self):
        autoimporter = {'type': 'csv', 'csv_url': 'http://fakeurl.com'}
        project = ProjectFactory.build(info={'autoimporter': autoimporter})

        assert project.has_autoimporter() is True
コード例 #26
0
ファイル: test_model_project.py プロジェクト: PyBossa/pybossa
    def test_needs_password_no_password_key(self):
        """Test needs_password returns false if the project has not a password"""
        project = ProjectFactory.build(info={})

        assert project.needs_password() is False
コード例 #27
0
    def test_needs_password_with_password_key_and_value(self, mock_signer):
        """Test needs_password returns true if the project has a password"""
        mock_signer.loads = lambda x: x
        project = ProjectFactory.build(info={'passwd_hash': 'mypassword'})

        assert project.needs_password() is True
コード例 #28
0
    def test_get_autoimporter_returns_autoimporter(self):
        autoimporter = {"type": "csv", "csv_url": "http://fakeurl.com"}
        project = ProjectFactory.build(info={"autoimporter": autoimporter})

        assert project.get_autoimporter() == autoimporter, project.get_autoimporter()
コード例 #29
0
    def test_has_autoimporter_returns_true_if_autoimporter(self):
        autoimporter = {"type": "csv", "csv_url": "http://fakeurl.com"}
        project = ProjectFactory.build(info={"autoimporter": autoimporter})

        assert project.has_autoimporter() is True
コード例 #30
0
ファイル: test_model_project.py プロジェクト: PyBossa/pybossa
    def test_has_autoimporter_returns_false_if_no_autoimporter(self):
        project = ProjectFactory.build(info={})

        assert project.has_autoimporter() is False
コード例 #31
0
ファイル: test_project_auth.py プロジェクト: PyBossa/pybossa
 def test_a_project_cannot_be_created_as_published(self):
     """Test a project cannot be created directly as published"""
     published_project = ProjectFactory.build(published=True)
     assert_raises(Forbidden, ensure_authorized_to, 'create', published_project)
コード例 #32
0
ファイル: test_model_project.py プロジェクト: PyBossa/pybossa
    def test_has_autoimporter_returns_true_if_autoimporter(self):
        autoimporter = {'type': 'csv', 'csv_url': 'http://fakeurl.com'}
        project = ProjectFactory.build(info={'autoimporter': autoimporter})

        assert project.has_autoimporter() is True
コード例 #33
0
ファイル: test_model_project.py プロジェクト: PyBossa/pybossa
    def test_check_password_bad_password(self, mock_signer):
        mock_signer.loads = lambda x: x
        project = ProjectFactory.build(info={'passwd_hash': 'mypassword'})

        assert not project.check_password('notmypassword')
コード例 #34
0
    def test_check_password_bad_password(self, mock_signer):
        mock_signer.loads = lambda x: x
        project = ProjectFactory.build(info={"passwd_hash": "mypassword"})

        assert not project.check_password("notmypassword")
コード例 #35
0
    def test_needs_password_empty_password_key(self, mock_signer):
        """Test needs_password returns false if the project has an empty password"""
        mock_signer.loads = lambda x: x
        project = ProjectFactory.build(info={'passwd_hash': None})

        assert project.needs_password() is False
コード例 #36
0
    def test_check_password_bad_password(self):
        project = ProjectFactory.build(info={'passwd_hash': 'mypassword'})

        assert not project.check_password('notmypassword')
コード例 #37
0
    def test_needs_password_no_password_key(self):
        """Test needs_password returns false if the project has not a password"""
        project = ProjectFactory.build(info={})

        assert project.needs_password() is False
コード例 #38
0
ファイル: test_model_project.py プロジェクト: PyBossa/pybossa
    def test_needs_password_empty_password_key(self, mock_signer):
        """Test needs_password returns false if the project has an empty password"""
        mock_signer.loads = lambda x: x
        project = ProjectFactory.build(info={'passwd_hash': None})

        assert project.needs_password() is False
コード例 #39
0
 def test_a_project_cannot_be_created_as_published(self):
     """Test a project cannot be created directly as published"""
     published_project = ProjectFactory.build(published=True)
     assert_raises(Forbidden, ensure_authorized_to, 'create',
                   published_project)
コード例 #40
0
ファイル: test_model_project.py プロジェクト: PyBossa/pybossa
    def test_needs_password_with_password_key_and_value(self, mock_signer):
        """Test needs_password returns true if the project has a password"""
        mock_signer.loads = lambda x: x
        project = ProjectFactory.build(info={'passwd_hash': 'mypassword'})

        assert project.needs_password() is True