def test_set(self):
     self.app.conf.couchbase_backend_settings = None
     x = CouchbaseBackend(app=self.app)
     x._connection = MagicMock()
     x._connection.set = MagicMock()
     # should return None
     self.assertIsNone(x.set(sentinel.key, sentinel.value))
Пример #2
0
 def test_set(self):
     self.app.conf.couchbase_backend_settings = None
     self.backend._client = MagicMock()
     self.backend._bucket = MagicMock()
     self.backend._bucket.set = MagicMock()
     # should return None
     self.assertIsNone(self.backend.set(sentinel.key, sentinel.value))
Пример #3
0
    def test_set(self):
        """test_set

        CouchBaseBackend.set should return None and take two params
        db conn to couchbase is mocked.

        """
        self.app.conf.CELERY_COUCHBASE_BACKEND_SETTINGS = None
        x = CouchBaseBackend(app=self.app)
        x._connection = MagicMock()
        x._connection.set = MagicMock()
        # should return None
        self.assertIsNone(x.set(sentinel.key, sentinel.value))
Пример #4
0
    def test_set(self):
        """
        Test set method.

        CouchBaseBackend.set should return None and take two params
        db conn to couchbase is mocked.
        """
        self.app.conf.couchbase_backend_settings = None
        x = CouchBaseBackend(app=self.app)
        x._connection = MagicMock()
        x._connection.set = MagicMock()
        # should return None
        self.assertIsNone(x.set(sentinel.key, sentinel.value))
Пример #5
0
    def test_set(self):
        """Test set

        RiakBackend.set
        should return None and take two params
        db conn to couchbase is mocked.

        """
        self.app.conf.couchbase_backend_settings = None
        self.backend._client = MagicMock()
        self.backend._bucket = MagicMock()
        self.backend._bucket.set = MagicMock()
        # should return None
        self.assertIsNone(self.backend.set(sentinel.key, sentinel.value))
Пример #6
0
    def test_set(self):
        """Test set

        RiakBackend.set
        should return None and take two params
        db conn to couchbase is mocked.

        """
        self.app.conf.CELERY_COUCHBASE_BACKEND_SETTINGS = None
        self.backend._client = MagicMock()
        self.backend._bucket = MagicMock()
        self.backend._bucket.set = MagicMock()
        # should return None
        self.assertIsNone(self.backend.set(sentinel.key, sentinel.value))
Пример #7
0
 def test_should_validate_the_mobile_number_for_trial_account_if_not_unique(
         self):
     org = Mock(spec=Organization)
     type(org).in_trial_mode = PropertyMock(return_value=True)
     validator = MobileNumberValidater(org, "56789", "rep")
     with patch(
             "datawinners.accountmanagement.mobile_number_validater.get_data_senders_on_trial_account_with_mobile_number"
     ) as get_data_senders_on_trial_account_with_mobile_number:
         with patch(
                 "datawinners.accountmanagement.mobile_number_validater.get_database_manager_for_org"
         ) as get_db_manager:
             manager = MagicMock(spec=DatabaseManager)
             manager.load_all_rows_in_view.return_value = []
             get_db_manager.return_value = manager
             get_data_senders_on_trial_account_with_mobile_number.return_value = [
                 {
                     'key': ['12345678', 'name', 'some_other_id'],
                     'value': None
                 }
             ]
             valid, message = validator.validate()
             self.assertFalse(valid)
             self.assertEquals(
                 message,
                 validation_message_dict['duplicate_in_different_account'])
Пример #8
0
    def test_restore_group(self, mock_get_database):
        self.backend.groupmeta_collection = MONGODB_GROUP_COLLECTION

        mock_database = MagicMock(spec=['__getitem__', '__setitem__'])
        mock_collection = Mock()
        mock_collection.find_one.return_value = {
            '_id': sentinel.taskset_id,
            'result': [uuid(), uuid()],
            'date_done': 1,
        }
        self.backend.decode.side_effect = lambda r: r

        mock_get_database.return_value = mock_database
        mock_database.__getitem__.return_value = mock_collection

        ret_val = self.backend._restore_group(sentinel.taskset_id)

        mock_get_database.assert_called_once_with()
        mock_collection.find_one.assert_called_once_with(
            {'_id': sentinel.taskset_id})
        self.assertItemsEqual(
            ['date_done', 'result', 'task_id'],
            list(ret_val.keys()),
        )

        mock_collection.find_one.return_value = None
        self.backend._restore_group(sentinel.taskset_id)
Пример #9
0
 def test_when_no_len_and_no_length_hint(self):
     g = MagicMock(name='group')
     g.tasks.__len__.side_effect = TypeError()
     g.tasks.__length_hint__ = Mock()
     g.tasks.__length_hint__.return_value = 0
     self.assertIs(maybe_unroll_group(g), g)
     g.tasks.__length_hint__.side_effect = AttributeError()
     self.assertIs(maybe_unroll_group(g), g)
Пример #10
0
    def test_get_task_meta_for(self, mock_get_database):
        datetime.datetime = self._reset['datetime']
        self.backend.taskmeta_collection = MONGODB_COLLECTION

        mock_database = MagicMock(spec=['__getitem__', '__setitem__'])
        mock_collection = Mock()
        mock_collection.find_one.return_value = MagicMock()

        mock_get_database.return_value = mock_database
        mock_database.__getitem__.return_value = mock_collection

        ret_val = self.backend._get_task_meta_for(sentinel.task_id)

        mock_get_database.assert_called_once_with()
        mock_database.__getitem__.assert_called_once_with(MONGODB_COLLECTION)
        self.assertEqual([
            'status', 'task_id', 'date_done', 'traceback', 'result', 'children'
        ], list(ret_val.keys()))
Пример #11
0
 def test_should_return_true_if_no_datasender_present_with_same_number(
         self):
     with patch(
             "datawinners.accountmanagement.mobile_number_validater.get_database_manager_for_org"
     ) as get_db_manager:
         manager = MagicMock(spec=DatabaseManager)
         manager.load_all_rows_in_view.return_value = []
         get_db_manager.return_value = manager
         self.assertTrue(self.mobile_number_validator.
                         is_mobile_number_unique_for_the_account())
Пример #12
0
    def test_restore_group(self, mock_get_database):
        self.backend.taskmeta_collection = MONGODB_COLLECTION

        mock_database = MagicMock(spec=['__getitem__', '__setitem__'])
        mock_collection = Mock()
        mock_collection.find_one.return_value = MagicMock()

        mock_get_database.return_value = mock_database
        mock_database.__getitem__.return_value = mock_collection

        ret_val = self.backend._restore_group(sentinel.taskset_id)

        mock_get_database.assert_called_once_with()
        mock_database.__getitem__.assert_called_once_with(MONGODB_COLLECTION)
        mock_collection.find_one.assert_called_once_with(
            {'_id': sentinel.taskset_id})
        self.assertItemsEqual(
            ['date_done', 'result', 'task_id'],
            list(ret_val.keys()),
        )
Пример #13
0
 def test_should_validate_the_mobile_number_for_paid_account_if_unique(
         self):
     org = Mock(spec=Organization)
     type(org).in_trial_mode = PropertyMock(return_value=False)
     validator = MobileNumberValidater(org, "56789", "rep")
     manager = MagicMock(spec=DatabaseManager)
     with patch(
             "datawinners.accountmanagement.mobile_number_validater.find_reporters_by_from_number"
     ) as find_reporters_by_from_number:
         with patch(
                 "datawinners.accountmanagement.mobile_number_validater.get_database_manager_for_org"
         ) as get_db_manager:
             datasender = Entity(manager,
                                 REPORTER_ENTITY_TYPE,
                                 short_code='reporter_id')
             find_reporters_by_from_number.return_value = [datasender]
             manager = MagicMock(spec=DatabaseManager)
             manager.load_all_rows_in_view.return_value = []
             get_db_manager.return_value = manager
             valid, message = validator.validate()
             self.assertFalse(valid)
Пример #14
0
 def test_should_return_false_if_datasender_present_with_same_number(self):
     with patch(
             "datawinners.accountmanagement.mobile_number_validater.get_database_manager_for_org"
     ) as get_db_manager:
         manager = MagicMock(spec=DatabaseManager)
         manager.load_all_rows_in_view.return_value = [{
             'key': ['12345678', 'name', 'rep_id'],
             'value':
             None
         }]
         get_db_manager.return_value = manager
         self.assertFalse(self.mobile_number_validator.
                          is_mobile_number_unique_for_the_account())
Пример #15
0
    def test_delete_group(self, mock_get_database):
        self.backend.taskmeta_collection = MONGODB_COLLECTION

        mock_database = MagicMock(spec=['__getitem__', '__setitem__'])
        mock_collection = Mock()

        mock_get_database.return_value = mock_database
        mock_database.__getitem__.return_value = mock_collection

        self.backend._delete_group(sentinel.taskset_id)

        mock_get_database.assert_called_once_with()
        mock_collection.remove.assert_called_once_with(
            {'_id': sentinel.taskset_id})
Пример #16
0
    def test_get_task_meta_for_no_result(self, mock_get_database):
        self.backend.taskmeta_collection = MONGODB_COLLECTION

        mock_database = MagicMock(spec=['__getitem__', '__setitem__'])
        mock_collection = Mock()
        mock_collection.find_one.return_value = None

        mock_get_database.return_value = mock_database
        mock_database.__getitem__.return_value = mock_collection

        ret_val = self.backend._get_task_meta_for(sentinel.task_id)

        mock_get_database.assert_called_once_with()
        mock_database.__getitem__.assert_called_once_with(MONGODB_COLLECTION)
        self.assertEqual({'status': states.PENDING, 'result': None}, ret_val)
Пример #17
0
    def test_get_database_no_existing_no_auth(self, mock_get_connection):
        # Should really check for combinations of these two, to be complete.
        self.backend.user = None
        self.backend.password = None

        mock_database = Mock()
        mock_connection = MagicMock(spec=['__getitem__'])
        mock_connection.__getitem__.return_value = mock_database
        mock_get_connection.return_value = mock_connection

        database = self.backend.database

        self.assertTrue(database is mock_database)
        self.assertFalse(mock_database.authenticate.called)
        self.assertTrue(self.backend.__dict__['database'] is mock_database)
Пример #18
0
    def test_cleanup(self, mock_get_database):
        datetime.datetime = self._reset['datetime']
        self.backend.taskmeta_collection = MONGODB_COLLECTION

        mock_database = MagicMock(spec=['__getitem__', '__setitem__'])
        self.backend.collections = mock_collection = Mock()

        mock_get_database.return_value = mock_database
        mock_database.__getitem__.return_value = mock_collection

        self.backend.app.now = datetime.datetime.utcnow
        self.backend.cleanup()

        mock_get_database.assert_called_once_with()
        mock_database.__getitem__.assert_called_once_with(MONGODB_COLLECTION)
        self.assertTrue(mock_collection.remove.called)
Пример #19
0
    def test_save_group(self, mock_get_database):
        self.backend.taskmeta_collection = MONGODB_COLLECTION

        mock_database = MagicMock(spec=['__getitem__', '__setitem__'])
        mock_collection = Mock()

        mock_get_database.return_value = mock_database
        mock_database.__getitem__.return_value = mock_collection

        ret_val = self.backend._save_group(sentinel.taskset_id,
                                           sentinel.result)

        mock_get_database.assert_called_once_with()
        mock_database.__getitem__.assert_called_once_with(MONGODB_COLLECTION)
        mock_collection.save.assert_called_once_with(ANY)
        self.assertEqual(sentinel.result, ret_val)
Пример #20
0
    def test_get_database_no_existing(self, mock_get_connection):
        # Should really check for combinations of these two, to be complete.
        self.backend.user = MONGODB_USER
        self.backend.password = MONGODB_PASSWORD

        mock_database = Mock()
        mock_connection = MagicMock(spec=['__getitem__'])
        mock_connection.__getitem__.return_value = mock_database
        mock_get_connection.return_value = mock_connection

        database = self.backend.database

        self.assertTrue(database is mock_database)
        self.assertTrue(self.backend.__dict__['database'] is mock_database)
        mock_database.authenticate.assert_called_once_with(
            MONGODB_USER, MONGODB_PASSWORD)
Пример #21
0
 def test_should_validate_the_mobile_number_for_trial_account_if_unique(
         self):
     org = Mock(spec=Organization)
     type(org).in_trial_mode = PropertyMock(return_value=True)
     validator = MobileNumberValidater(org, "56789", "rep")
     with patch(
             "datawinners.accountmanagement.mobile_number_validater.get_data_senders_on_trial_account_with_mobile_number"
     ) as get_data_senders_on_trial_account_with_mobile_number:
         with patch(
                 "datawinners.accountmanagement.mobile_number_validater.get_database_manager_for_org"
         ) as get_db_manager:
             manager = MagicMock(spec=DatabaseManager)
             manager.load_all_rows_in_view.return_value = []
             get_db_manager.return_value = manager
             get_data_senders_on_trial_account_with_mobile_number.return_value = []
             self.assertTrue(validator.validate())
Пример #22
0
    def test_user_email_validation_should_be_case_insensitive(self):
        User.objects.create_user('*****@*****.**', '*****@*****.**', 'password')
        trial_organization = Organization(
            name='test_org_for_trial_account',
            sector='PublicHealth',
            address='add',
            city='Pune',
            country='IN',
            zipcode='411006',
            account_type='Basic',
            org_id=OrganizationIdCreator().generateId(),
            status='Activated')
        trial_organization.save()
        mobile_validater = MobileNumberValidater(trial_organization, '788522',
                                                 'no_id')
        mobile_validater.validate = MagicMock(return_value=(True, ''))
        with patch("datawinners.accountmanagement.forms.MobileNumberValidater"
                   ) as validater:
            with patch(
                    "datawinners.accountmanagement.forms.datasender_count_with"
            ) as datasender_count_with_mock:
                validater.return_value = mobile_validater
                form = UserProfileForm(organization=trial_organization,
                                       data={
                                           'title': 'manager',
                                           'full_name': 'user one',
                                           'username': '******',
                                           'mobile_phone': '7889522'
                                       })

                self.assertFalse(form.is_valid())
                self.assertEqual(form.errors['username'], [
                    'This email address is already in use. Please supply a different email address'
                ])
                mobile_validater.validate.assert_called_with()
                datasender_count_with_mock.return_value = 0
                form = UserProfileForm(organization=trial_organization,
                                       data={
                                           'title': 'manager',
                                           'full_name': 'user one',
                                           'username': '******',
                                           'mobile_phone': '7889522'
                                       })

                self.assertTrue(form.is_valid())
                self.assertEqual(form.clean_username(), '*****@*****.**')
Пример #23
0
 def test_should_validate_the_mobile_number_for_paid_account_if_not_unique(
         self):
     org = Mock(spec=Organization)
     type(org).in_trial_mode = PropertyMock(return_value=False)
     validator = MobileNumberValidater(org, "56789", "rep")
     with patch(
             "datawinners.accountmanagement.mobile_number_validater.find_reporters_by_from_number"
     ) as find_reporters_by_from_number:
         with patch(
                 "datawinners.accountmanagement.mobile_number_validater.get_database_manager_for_org"
         ) as get_db_manager:
             find_reporters_by_from_number.return_value = []
             find_reporters_by_from_number.side_effect = NumberNotRegisteredException(
                 "12345678")
             manager = MagicMock(spec=DatabaseManager)
             manager.load_all_rows_in_view.return_value = []
             get_db_manager.return_value = manager
             self.assertTrue(validator.validate())
Пример #24
0
    def test_save_group(self, mock_get_database):
        self.backend.groupmeta_collection = MONGODB_GROUP_COLLECTION

        mock_database = MagicMock(spec=['__getitem__', '__setitem__'])
        mock_collection = Mock()

        mock_get_database.return_value = mock_database
        mock_database.__getitem__.return_value = mock_collection
        res = [self.app.AsyncResult(i) for i in range(3)]
        ret_val = self.backend._save_group(
            sentinel.taskset_id,
            res,
        )
        mock_get_database.assert_called_once_with()
        mock_database.__getitem__.assert_called_once_with(
            MONGODB_GROUP_COLLECTION, )
        mock_collection.save.assert_called_once_with(ANY)
        self.assertEqual(res, ret_val)
Пример #25
0
    def test_store_result(self, mock_get_database):
        self.backend.taskmeta_collection = MONGODB_COLLECTION

        mock_database = MagicMock(spec=['__getitem__', '__setitem__'])
        mock_collection = Mock()

        mock_get_database.return_value = mock_database
        mock_database.__getitem__.return_value = mock_collection

        ret_val = self.backend._store_result(sentinel.task_id, sentinel.result,
                                             sentinel.status)

        mock_get_database.assert_called_once_with()
        mock_database.__getitem__.assert_called_once_with(MONGODB_COLLECTION)
        mock_collection.save.assert_called_once_with(ANY)
        self.assertEqual(sentinel.result, ret_val)

        mock_collection.save.side_effect = InvalidDocument()
        with self.assertRaises(EncodeError):
            self.backend._store_result(sentinel.task_id, sentinel.result,
                                       sentinel.status)