def make(self, *args, **kw):
        if not self._config.mock_enabled:
            return None

        if self._info:
            return self._info

        if self._failed:
            raise Exception('Not invoking failed mock!')

        bspec_dfl = BucketSpec('default', 'couchbase')
        mock = CouchbaseMock([bspec_dfl],
                             self._config.mockpath,
                             self._config.mockurl,
                             replicas=2,
                             nodes=4)

        try:
            mock.start()
        except:
            self._failed = True
            raise

        info = ClusterInformation()
        info.bucket_name = "default"
        info.port = mock.rest_port
        info.host = "127.0.0.1"
        info.admin_username = "******"
        info.admin_password = "******"
        info.mock = mock
        self._info = info
        return info
    def make(self, *args, **kw):
        if not self._config.mock_enabled:
            return None

        if self._info:
            return self._info

        bspec_dfl = BucketSpec('default', 'couchbase')
        bspec_sasl = BucketSpec('default_sasl', 'couchbase', 'secret')
        mock = CouchbaseMock([bspec_dfl, bspec_sasl],
                             self._config.mockpath,
                             self._config.mockurl,
                             replicas=2,
                             nodes=4)
        mock.start()

        info = ClusterInformation()
        info.bucket_prefix = "default"
        info.bucket_password = "******"
        info.port = mock.rest_port
        info.host = "127.0.0.1"
        info.admin_username = "******"
        info.admin_password = "******"
        info.extra_buckets = True
        info.mock = mock
        self._info = info
        return info
Beispiel #3
0
    def make(self, *args, **kw):
        if not self._config.mock_enabled:
            return None

        if self._info:
            return self._info

        if self._failed:
            raise Exception('Not invoking failed mock!')

        bspec_dfl = BucketSpec('default', 'couchbase')
        mock = CouchbaseMock([bspec_dfl],
                             self._config.mockpath,
                             self._config.mockurl,
                             replicas=2,
                             nodes=4)

        try:
            mock.start()
        except:
            self._failed = True
            raise

        info = ClusterInformation()
        info.bucket_name = "default"
        info.port = mock.rest_port
        info.host = "127.0.0.1"
        info.admin_username = "******"
        info.admin_password = "******"
        info.mock = mock
        self._info = info
        return info
    def make(self, *args, **kw):
        if not self._config.mock_enabled:
            return None

        if self._info:
            return self._info

        bspec_dfl = BucketSpec('default', 'couchbase')
        bspec_sasl = BucketSpec('default_sasl', 'couchbase', 'secret')
        mock = CouchbaseMock([bspec_dfl, bspec_sasl],
                             self._config.mockpath,
                             self._config.mockurl,
                             replicas=2,
                             nodes=4)
        mock.start()

        info = ClusterInformation()
        info.bucket_prefix = "default"
        info.bucket_password = "******"
        info.port = mock.rest_port
        info.host = "127.0.0.1"
        info.admin_username = "******"
        info.admin_password = "******"
        info.extra_buckets = True
        info.mock = mock
        self._info = info
        return info
    def _setup_mock(self, mockpath, mockurl):

        bspec_dfl = BucketSpec('default', 'couchbase')
        bspec_sasl = BucketSpec('default_sasl', 'couchbase', 'secret')

        self.mock = CouchbaseMock([bspec_dfl, bspec_sasl],
                                  mockpath,
                                  mockurl,
                                  replicas=2,
                                  nodes=4)
        self.mock.start()
        self.bucket_prefix = "default"
        self.bucket_password = "******"
        self.port = self.mock.rest_port
        self.host = "127.0.0.1"
        self.username = "******"
        self.password = "******"
        self.extra_buckets = True
Beispiel #6
0
    def _setup_mock(self, mockpath, mockurl):

        bspec_dfl = BucketSpec('default', 'couchbase')
        bspec_sasl = BucketSpec('default_sasl', 'couchbase', 'secret')

        self.mock = CouchbaseMock([bspec_dfl, bspec_sasl],
                                  mockpath,
                                  mockurl,
                                  replicas=2,
                                  nodes=4)
        self.mock.start()
        self.bucket_prefix = "default"
        self.bucket_password = "******"
        self.port = self.mock.rest_port
        self.host = "127.0.0.1"
        self.username = "******"
        self.password = "******"
        self.extra_buckets = True
Beispiel #7
0
class CouchbaseTestCase(unittest.TestCase):
    @classmethod
    def _setup_mock(self, mockpath, mockurl):

        bspec_dfl = BucketSpec('default', 'couchbase')
        bspec_sasl = BucketSpec('default_sasl', 'couchbase', 'secret')

        self.mock = CouchbaseMock([bspec_dfl, bspec_sasl],
                                  mockpath,
                                  mockurl,
                                  replicas=2,
                                  nodes=4)
        self.mock.start()
        self.bucket_prefix = "default"
        self.bucket_password = "******"
        self.port = self.mock.rest_port
        self.host = "127.0.0.1"
        self.username = "******"
        self.password = "******"
        self.extra_buckets = True

    @classmethod
    def setupClass(self):
        config = ConfigParser()
        config.read(CONFIG_FILE)
        self.host = config.get('node-1', 'host')
        self.port = config.getint('node-1', 'port')
        self.username = config.get('node-1', 'username')
        self.password = config.get('node-1', 'password')
        self.bucket_prefix = config.get('node-1', 'bucket_prefix')
        self.bucket_password = config.get('node-1', 'bucket_password')
        self.nosleep = os.environ.get('PYCBC_TESTS_NOSLEEP', False)
        self.extra_buckets = bool(int(config.get('node-1', 'extra_buckets')))

        self.mock = None
        if config.has_option("mock", "enabled"):
            if config.getboolean("mock", "enabled"):
                mockpath = config.get("mock", "path")
                if config.has_option("mock", "url"):
                    mockurl = config.get("mock", "url")
                else:
                    mockurl = None

                self._setup_mock(mockpath, mockurl)

    @classmethod
    def teardownClass(self):
        if self.mock:
            self.mock.stop()
        self.mock = None



    def setUp(self):
        if not hasattr(self, 'assertIsInstance'):
            def tmp(self, a, *bases):
                self.assertTrue(isinstance(a, bases))
            self.assertIsInstance = types.MethodType(tmp, self)
        if not hasattr(self, 'assertIsNone'):
            def tmp(self, a):
                self.assertTrue(a is None)
            self.assertIsNone = types.MethodType(tmp, self)

        self._key_counter = 0


    def get_sasl_params(self):
        if not self.bucket_password:
            return None
        ret = self.make_connargs()
        ret = { 'password' : self.bucket_password, 'bucket' : self.bucket_prefix }
        if self.extra_buckets:
            ret['bucket'] += "_sasl"
        return ret

    def skipUnlessSasl(self):
        sasl_params = self.get_sasl_params()
        if not sasl_params:
            raise SkipTest("No SASL buckets configured")


    def skipLcbMin(self, vstr):
        """
        Test requires a libcouchbase version of at least vstr.
        This may be a hex number (e.g. 0x020007) or a string (e.g. "2.0.7")
        """

        if isinstance(vstr, basestring):
            components = vstr.split('.')
            hexstr = "0x"
            for comp in components:
                if len(comp) > 2:
                    raise ValueError("Version component cannot be larger than 99")
                hexstr += "{0:02}".format(int(comp))

            vernum = int(hexstr, 16)
        else:
            vernum = vstr
            components = []
            # Get the display
            for x in range(0, 3):
                comp = (vernum & 0xff << (x*8)) >> x*8
                comp = "{0:x}".format(comp)
                components = [comp] + components
            vstr = ".".join(components)

        rtstr, rtnum = Connection.lcb_version()
        if rtnum < vernum:
            raise SkipTest(("Test requires {0} to run (have {1})")
                            .format(vstr, rtstr))


    def tearDown(self):
        pass

    def skipIfMock(self):
        if self.mock:
            raise SkipTest("Test not supported on Mock")

    def skipUnlessMock(self):
        if not self.mock:
            raise SkipTest("Test requires CouchbaseMock")

    def make_connargs(self, **overrides):
        ret = {
            'host' : self.host,
            'port' : self.port,
            'username' : self.username,
            'password' : self.password,
            'bucket' : self.bucket_prefix
        }
        ret.update(overrides)
        return ret

    def slowTest(self):
        if self.nosleep:
            raise SkipTest("Skipping slow/sleep-based test")

    def make_connection(self, **kwargs):
        return Connection(**self.make_connargs(**kwargs))

    def make_admin_connection(self):
        return Admin(self.username, self.password, self.host, self.port)

    def gen_key(self, prefix=None):
        if not prefix:
            prefix = "python-couchbase-key_"

        ret = "{0}{1}".format(prefix, self._key_counter)
        self._key_counter += 1
        return ret

    def gen_key_list(self, amount=5, prefix=None):
        ret = [ self.gen_key(prefix) for x in range(amount) ]
        return ret

    def gen_kv_dict(self, amount=5, prefix=None):
        ret = {}
        keys = self.gen_key_list(amount=amount, prefix=prefix)
        for k in keys:
            ret[k] = "Value_For_" + k
        return ret
class CouchbaseTestCase(unittest.TestCase):
    @classmethod
    def _setup_mock(self, mockpath, mockurl):

        bspec_dfl = BucketSpec('default', 'couchbase')
        bspec_sasl = BucketSpec('default_sasl', 'couchbase', 'secret')

        self.mock = CouchbaseMock([bspec_dfl, bspec_sasl],
                                  mockpath,
                                  mockurl,
                                  replicas=2,
                                  nodes=4)
        self.mock.start()
        self.bucket_prefix = "default"
        self.bucket_password = "******"
        self.port = self.mock.rest_port
        self.host = "127.0.0.1"
        self.username = "******"
        self.password = "******"
        self.extra_buckets = True

    @classmethod
    def setupClass(self):
        config = ConfigParser()
        config.read(CONFIG_FILE)
        self.host = config.get('node-1', 'host')
        self.port = config.getint('node-1', 'port')
        self.username = config.get('node-1', 'username')
        self.password = config.get('node-1', 'password')
        self.bucket_prefix = config.get('node-1', 'bucket_prefix')
        self.bucket_password = config.get('node-1', 'bucket_password')
        self.nosleep = os.environ.get('PYCBC_TESTS_NOSLEEP', False)
        self.extra_buckets = bool(int(config.get('node-1', 'extra_buckets')))

        self.mock = None
        if config.has_option("mock", "enabled"):
            if config.getboolean("mock", "enabled"):
                mockpath = config.get("mock", "path")
                if config.has_option("mock", "url"):
                    mockurl = config.get("mock", "url")
                else:
                    mockurl = None

                self._setup_mock(mockpath, mockurl)



    def setUp(self):
        if not hasattr(self, 'assertIsInstance'):
            def tmp(self, a, *bases):
                self.assertTrue(isinstance(a, bases))
            self.assertIsInstance = types.MethodType(tmp, self)
        if not hasattr(self, 'assertIsNone'):
            def tmp(self, a):
                self.assertTrue(a is None)
            self.assertIsNone = types.MethodType(tmp, self)

        self._key_counter = 0


    def get_sasl_params(self):
        if not self.bucket_password:
            return None
        ret = self.make_connargs()
        ret = { 'password' : self.bucket_password, 'bucket' : self.bucket_prefix }
        if self.extra_buckets:
            ret['bucket'] += "_sasl"
        return ret

    def skipUnlessSasl(self):
        sasl_params = self.get_sasl_params()
        if not sasl_params:
            raise SkipTest("No SASL buckets configured")


    def skipLcbMin(self, vstr):
        """
        Test requires a libcouchbase version of at least vstr.
        This may be a hex number (e.g. 0x020007) or a string (e.g. "2.0.7")
        """

        if isinstance(vstr, basestring):
            components = vstr.split('.')
            hexstr = "0x"
            for comp in components:
                if len(comp) > 2:
                    raise ValueError("Version component cannot be larger than 99")
                hexstr += "{0:02}".format(int(comp))

            vernum = int(hexstr, 16)
        else:
            vernum = vstr
            components = []
            # Get the display
            for x in range(0, 3):
                comp = (vernum & 0xff << (x*8)) >> x*8
                comp = "{0:x}".format(comp)
                components = [comp] + components
            vstr = ".".join(components)

        rtstr, rtnum = Connection.lcb_version()
        if rtnum < vernum:
            raise SkipTest(("Test requires {0} to run (have {1})")
                            .format(vstr, rtstr))


    def tearDown(self):
        pass

    def skipIfMock(self):
        if self.mock:
            raise SkipTest("Test not supported on Mock")

    def skipUnlessMock(self):
        if not self.mock:
            raise SkipTest("Test requires CouchbaseMock")

    def make_connargs(self, **overrides):
        ret = {
            'host' : self.host,
            'port' : self.port,
            'username' : self.username,
            'password' : self.password,
            'bucket' : self.bucket_prefix
        }
        ret.update(overrides)
        return ret

    def slowTest(self):
        if self.nosleep:
            raise SkipTest("Skipping slow/sleep-based test")

    def make_connection(self, **kwargs):
        return Connection(**self.make_connargs(**kwargs))

    def make_admin_connection(self):
        return Admin(self.username, self.password, self.host, self.port)

    def gen_key(self, prefix=None):
        if not prefix:
            prefix = "python-couchbase-key_"

        ret = "{0}{1}".format(prefix, self._key_counter)
        self._key_counter += 1
        return ret

    def gen_key_list(self, amount=5, prefix=None):
        ret = [ self.gen_key(prefix) for x in range(amount) ]
        return ret

    def gen_kv_dict(self, amount=5, prefix=None):
        ret = {}
        keys = self.gen_key_list(amount=amount, prefix=prefix)
        for k in keys:
            ret[k] = "Value_For_" + k
        return ret