Example #1
0
def test_drop_database_raises_operational_error():
    client = mock.Mock()
    client.rmdir.side_effect = EtcdKeyNotFound
    tree = SQLTree()
    tree.db = 'foo'
    with pytest.raises(OperationalError):
        drop_database(client, tree)
Example #2
0
def test_show_tables(content, rows):

    response = mock.Mock()
    response.content = content
    etcd_response = EtcdResult(response)

    etcd_client = mock.Mock()
    etcd_client.read.return_value = etcd_response

    cols = ColumnSet()
    cols.add(Column('Tables_in_foo'))

    # print(cols)

    rs = ResultSet(cols, rows)
    tree = SQLTree()
    tree.db = 'foo'
    tree.options['full'] = False
    # noinspection PyTypeChecker
    result = show_tables(etcd_client, tree, tree.db)

    print("Expected: \n%s" % rs)
    print("Actual: \n%s" % result)
    # noinspection PyTypeChecker
    assert result == rs
Example #3
0
def test_show_tables(mock_client, db, payload, result, cursor):
    response = mock.MagicMock()
    response.content = payload
    etcd_result = EtcdResult(response)
    tree = SQLTree()
    tree.db = db
    tree.options['full'] = False
    mock_client.return_value = etcd_result
    assert cursor._execute_show_tables(tree) == result
    mock_client.assert_called_once_with('/%s' % db)
Example #4
0
def test_drop_table_calls_rmdir(db_sql_tree, db_arg):
    tree = SQLTree()
    tree.db = db_sql_tree
    tree.table = 'bar'

    etcd_client = mock.Mock()

    drop_table(etcd_client, tree, db=db_arg)

    etcd_client.rmdir.assert_called_once_with('/foo/bar', recursive=True)
Example #5
0
def test_drop_table_raises_on_unknown_db():
    tree = SQLTree()
    tree.db = 'foo'
    tree.table = 'bar'

    etcd_client = mock.Mock()
    etcd_client.read.side_effect = EtcdKeyNotFound

    # unknown database
    with pytest.raises(OperationalError):
        drop_table(etcd_client, tree)
Example #6
0
def test_show_full_tables(mock_client, payload, result, etcdb_connection):
    cursor = etcdb_connection.cursor()
    assert cursor._db == 'foo'
    response = mock.MagicMock()
    response.content = payload
    etcd_result = EtcdResult(response)
    tree = SQLTree()
    tree.db = cursor._db
    tree.options['full'] = True
    mock_client.return_value = etcd_result
    assert cursor._execute_show_tables(tree) == result
    mock_client.assert_called_once_with('/foo')
Example #7
0
def test_drop_table_if_exists():
    tree = SQLTree()
    tree.db = 'foo'
    tree.table = 'bar'
    tree.options['if_exists'] = True

    etcd_client = mock.Mock()
    etcd_client.rmdir.side_effect = EtcdKeyNotFound

    drop_table(etcd_client, tree, db='foo')

    etcd_client.rmdir.assert_called_once_with('/foo/bar', recursive=True)
Example #8
0
def test_create_table(mock_mkdir, mock_write, cursor):
    tree = SQLTree()
    tree.db = 'foo'
    tree.table = 'bar'
    tree.fields = {
        'id': {
            'type': 'INT',
            'options': {
                'nullable': False,
                'primary': True
            }
        }
    }
    cursor._execute_create_table(tree)
    mock_mkdir.assert_called_once_with('/foo/bar')
    mock_write.assert_called_once_with('/foo/bar/_fields',
                                       json.dumps(tree.fields))
Example #9
0
def test_drop_database():
    client = mock.Mock()
    tree = SQLTree()
    tree.db = 'foo'
    drop_database(client, tree)
    client.rmdir.assert_called_once_with('/foo', recursive=True)