blob: 44e7561d7564a460e42454dd12d6f1a21e81f2ee [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
"""Test Database."""
import json
from unittest.mock import patch
import pytest
from pydolphinscheduler.models.connection import Connection
from pydolphinscheduler.models.datasource import Datasource
TEST_DATABASE_DATASOURCE_NAME = "test_datasource"
TEST_DATABASE_TYPE = "mysql"
TEST_CONNECTION_PARAMS = {
"user": "root",
"password": "mysql",
"address": "jdbc:mysql://127.0.0.1:3306",
"database": "test",
"jdbcUrl": "jdbc:mysql://127.0.0.1:3306/test",
"driverClassName": "com.mysql.cj.jdbc.Driver",
"validationQuery": "select 1",
}
TEST_CONNECTION_ARG = {
"host": "127.0.0.1",
"port": 3306,
"schema": "test",
"username": "root",
"password": "mysql",
}
datasource = Datasource(
id_=1,
type_=TEST_DATABASE_TYPE,
name=TEST_DATABASE_DATASOURCE_NAME,
connection_params=json.dumps(TEST_CONNECTION_PARAMS),
user_id=1,
)
@pytest.mark.parametrize(
"attr, value",
[
("connection", Connection(**TEST_CONNECTION_ARG)),
("host", "127.0.0.1"),
("port", 3306),
("username", "root"),
("password", "mysql"),
("schema", "test"),
],
)
@patch.object(Datasource, "get", return_value=datasource)
def test_get_datasource_attr(mock_datasource, attr, value):
"""Test get datasource attr."""
datasource_get = Datasource.get(TEST_DATABASE_DATASOURCE_NAME, TEST_DATABASE_TYPE)
assert value == getattr(datasource_get, attr)