Пример #1
0
    def create(self):
        if self.db_type == 'local':

            if self.directory is None or self.directory == '':
                raise ImproperDirectoryError(
                    "Please set a directory for local database")
            return LocalDatabase(self.directory)

        elif self.db_type == 'zookeeper':
            if self.host is None or self.host == '':
                raise ImproperHostError(
                    "Please provide a ip:port for zookeeper database")
            return ZookeeperDatabase(self.host, self.namespace, self.timeout,
                                     self.ssl)

        elif self.db_type == 'etcd':

            if isinstance(self.host, str):
                hosts = [_format_host_for_etcd(self.host)]
            elif isinstance(self.host, list):
                hosts = [_format_host_for_etcd(h) for h in self.host]
            return EtcdDatabase(hosts, self.timeout, self.api_path, self.ssl)
        else:
            raise ImproperDatabaseTypeError(
                "The agent only support 1)local 2)zookeeper 3)etcd databases")
Пример #2
0
def test_localdatabase_get_return_nothing_if_file_not_exists(
        mock_makedirs, mock_path_exists, mock_file):
    value = LocalDatabase('storage').get(b'key')
    assert value is None
Пример #3
0
def test_localdatabase_get_read_from_file(mock_makedirs, mock_path_exists,
                                          mock_file):
    mock_file.return_value.__enter__.return_value.read.return_value = b'value'
    value = LocalDatabase('storage').get(b'key')
    mock_file.assert_called_with('storage/key', 'rb')
    assert value == b'value'
Пример #4
0
def test_localdatabase_set_write_to_file(mock_makedirs, mock_file):
    LocalDatabase('storage').set(b'key', b'value')
    mock_file.assert_called_with('storage/key', 'wb')
    mock_file.return_value.__enter__.return_value.write.assert_called_with(
        b'value')
Пример #5
0
def test_localdatabase_make_directory_for_storing_data(mock_makedirs):
    LocalDatabase('storage')
    mock_makedirs.assert_called_with('storage')
Пример #6
0
def test_localdatabase_enable_to_reuse_db():
    LocalDatabase('/tmp/test_wca_db').set(b'key', b'value')
    assert LocalDatabase('/tmp/test_wca_db').get(b'key') == b'value'
    os.remove('/tmp/test_wca_db/key')
    os.rmdir('/tmp/test_wca_db')