Example #1
0
 def test_get_non_existent_key(self):
     x = CouchBackend(app=self.app)
     x._connection = Mock()
     get = x._connection.get = MagicMock()
     get.side_effect = pycouchdb.exceptions.NotFound
     assert x.get('1f3fab') is None
     x._connection.get.assert_called_once_with('1f3fab')
Example #2
0
 def test_get_non_existent_key(self):
     x = CouchBackend(app=self.app)
     x._connection = Mock()
     get = x._connection.get = MagicMock()
     get.side_effect = pycouchdb.exceptions.NotFound
     assert x.get('1f3fab') is None
     x._connection.get.assert_called_once_with('1f3fab')
Example #3
0
    def test_set(self, key):
        x = CouchBackend(app=self.app)
        x._connection = Mock()

        x._set_with_state(key, 'value', states.SUCCESS)

        x._connection.save.assert_called_once_with({'_id': '1f3fab',
                                                    'value': 'value'})
Example #4
0
    def test_set(self, key):
        x = CouchBackend(app=self.app)
        x._connection = Mock()

        x.set(key, 'value')

        x._connection.save.assert_called_once_with({'_id': '1f3fab',
                                                    'value': 'value'})
Example #5
0
    def test_get(self):
        """test_get

        CouchBackend.get should return  and take two params
        db conn to couchdb is mocked.
        """
        x = CouchBackend(app=self.app)
        x._connection = Mock()
        get = x._connection.get = MagicMock()
        assert x.get('1f3fab') == get.return_value['value']
        x._connection.get.assert_called_once_with('1f3fab')
Example #6
0
    def test_get(self):
        """test_get

        CouchBackend.get should return  and take two params
        db conn to couchdb is mocked.
        """
        x = CouchBackend(app=self.app)
        x._connection = Mock()
        get = x._connection.get = MagicMock()
        assert x.get('1f3fab') == get.return_value['value']
        x._connection.get.assert_called_once_with('1f3fab')
Example #7
0
    def test_set_with_conflict(self, key):
        x = CouchBackend(app=self.app)
        x._connection = Mock()
        x._connection.save.side_effect = (pycouchdb.exceptions.Conflict, None)
        get = x._connection.get = MagicMock()

        x._set_with_state(key, 'value', states.SUCCESS)

        x._connection.get.assert_called_once_with('1f3fab')
        x._connection.get('1f3fab').__setitem__.assert_called_once_with(
            'value', 'value')
        x._connection.save.assert_called_with(get('1f3fab'))
        assert x._connection.save.call_count == 2
Example #8
0
    def test_set_with_conflict(self, key):
        x = CouchBackend(app=self.app)
        x._connection = Mock()
        x._connection.save.side_effect = (pycouchdb.exceptions.Conflict, None)
        get = x._connection.get = MagicMock()

        x.set(key, 'value')

        x._connection.get.assert_called_once_with('1f3fab')
        x._connection.get('1f3fab').__setitem__.assert_called_once_with(
            'value', 'value')
        x._connection.save.assert_called_with(get('1f3fab'))
        assert x._connection.save.call_count == 2
Example #9
0
    def test_delete(self):
        """test_delete

        CouchBackend.delete should return and take two params
        db conn to pycouchdb is mocked.
        TODO Should test on key not exists

        """
        x = CouchBackend(app=self.app)
        x._connection = Mock()
        mocked_delete = x._connection.delete = Mock()
        mocked_delete.return_value = None
        # should return None
        self.assertIsNone(x.delete('1f3fab'))
        x._connection.delete.assert_called_once_with('1f3fab')
Example #10
0
    def test_get(self):
        """test_get

        CouchBackend.get should return  and take two params
        db conn to couchdb is mocked.
        TODO Should test on key not exists

        """
        x = CouchBackend(app=self.app)
        x._connection = Mock()
        mocked_get = x._connection.get = Mock()
        mocked_get.return_value = sentinel.retval
        # should return None
        self.assertEqual(x.get('1f3fab'), sentinel.retval)
        x._connection.get.assert_called_once_with('1f3fab')
Example #11
0
 def test_init_no_pycouchdb(self):
     """test init no pycouchdb raises"""
     prev, module.pycouchdb = module.pycouchdb, None
     try:
         with self.assertRaises(ImproperlyConfigured):
             CouchBackend(app=self.app)
     finally:
         module.pycouchdb = prev
Example #12
0
 def setup(self):
     if pycouchdb is None:
         raise SkipTest('pycouchdb is not installed.')
     self.backend = CouchBackend(app=self.app)
Example #13
0
class test_CouchBackend(AppCase):

    def setup(self):
        if pycouchdb is None:
            raise SkipTest('pycouchdb is not installed.')
        self.backend = CouchBackend(app=self.app)

    def test_init_no_pycouchdb(self):
        """test init no pycouchdb raises"""
        prev, module.pycouchdb = module.pycouchdb, None
        try:
            with self.assertRaises(ImproperlyConfigured):
                CouchBackend(app=self.app)
        finally:
            module.pycouchdb = prev

    def test_get_container_exists(self):
        with patch('pycouchdb.client.Database') as mock_Connection:
            self.backend._connection = sentinel._connection

            connection = self.backend._get_connection()

            self.assertEqual(sentinel._connection, connection)
            self.assertFalse(mock_Connection.called)

    def test_get(self):
        """test_get

        CouchBackend.get should return  and take two params
        db conn to couchdb is mocked.
        TODO Should test on key not exists

        """
        x = CouchBackend(app=self.app)
        x._connection = Mock()
        mocked_get = x._connection.get = Mock()
        mocked_get.return_value = sentinel.retval
        # should return None
        self.assertEqual(x.get('1f3fab'), sentinel.retval)
        x._connection.get.assert_called_once_with('1f3fab')

    def test_delete(self):
        """test_delete

        CouchBackend.delete should return and take two params
        db conn to pycouchdb is mocked.
        TODO Should test on key not exists

        """
        x = CouchBackend(app=self.app)
        x._connection = Mock()
        mocked_delete = x._connection.delete = Mock()
        mocked_delete.return_value = None
        # should return None
        self.assertIsNone(x.delete('1f3fab'))
        x._connection.delete.assert_called_once_with('1f3fab')

    def test_backend_by_url(self, url='couchdb://myhost/mycoolcontainer'):
        from celery.backends.couchdb import CouchBackend
        backend, url_ = backends.get_backend_by_url(url, self.app.loader)
        self.assertIs(backend, CouchBackend)
        self.assertEqual(url_, url)

    def test_backend_params_by_url(self):
        url = 'couchdb://*****:*****@myhost:123/mycoolcontainer'
        with self.Celery(backend=url) as app:
            x = app.backend
            self.assertEqual(x.container, 'mycoolcontainer')
            self.assertEqual(x.host, 'myhost')
            self.assertEqual(x.username, 'johndoe')
            self.assertEqual(x.password, 'mysecret')
            self.assertEqual(x.port, 123)
Example #14
0
 def setup(self):
     self.Server = self.patching('pycouchdb.Server')
     self.backend = CouchBackend(app=self.app)
Example #15
0
 def setup(self):
     self.backend = CouchBackend(app=self.app)