Browse Source
* [python] Fix change exists pd attribute user error * Remove attribute from class ProcessDefinition, cause it should to object User instead of object ProcessDefinition. * Grant project to user if attribute user change for exists ProcessDefinition close: #8751 * Add py.test conftest.py for package integration3.0.0/version-upgrade
Jiajie Zhong
3 years ago
committed by
GitHub
11 changed files with 167 additions and 51 deletions
@ -0,0 +1,46 @@ |
|||||||
|
# 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. |
||||||
|
|
||||||
|
"""py.test conftest.py file for package integration test.""" |
||||||
|
|
||||||
|
import pytest |
||||||
|
|
||||||
|
from tests.testing.docker_wrapper import DockerWrapper |
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(scope="package", autouse=True) |
||||||
|
def docker_setup_teardown(): |
||||||
|
"""Fixture for whole package tests, Set up and teardown docker env. |
||||||
|
|
||||||
|
Fixture in file named ``conftest.py`` with ``scope=package`` could be auto import in the |
||||||
|
whole package, and with attribute ``autouse=True`` will be auto-use for each test cases. |
||||||
|
|
||||||
|
.. seealso:: |
||||||
|
For more information about conftest.py see: |
||||||
|
https://docs.pytest.org/en/latest/example/simple.html#package-directory-level-fixtures-setups |
||||||
|
""" |
||||||
|
docker_wrapper = DockerWrapper( |
||||||
|
image="apache/dolphinscheduler-standalone-server:ci", |
||||||
|
container_name="ci-dolphinscheduler-standalone-server", |
||||||
|
) |
||||||
|
ports = {"25333/tcp": 25333} |
||||||
|
container = docker_wrapper.run_until_log( |
||||||
|
log="Started StandaloneServer in", tty=True, ports=ports |
||||||
|
) |
||||||
|
assert container is not None |
||||||
|
yield |
||||||
|
docker_wrapper.remove_container() |
@ -0,0 +1,50 @@ |
|||||||
|
# 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 process definition in integration.""" |
||||||
|
|
||||||
|
from typing import Dict |
||||||
|
|
||||||
|
import pytest |
||||||
|
|
||||||
|
from pydolphinscheduler.core.process_definition import ProcessDefinition |
||||||
|
from pydolphinscheduler.tasks.shell import Shell |
||||||
|
|
||||||
|
PROCESS_DEFINITION_NAME = "test_change_exists_attr_pd" |
||||||
|
TASK_NAME = f"task_{PROCESS_DEFINITION_NAME}" |
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize( |
||||||
|
"pre, post", |
||||||
|
[ |
||||||
|
( |
||||||
|
{ |
||||||
|
"user": "pre_user", |
||||||
|
}, |
||||||
|
{ |
||||||
|
"user": "post_user", |
||||||
|
}, |
||||||
|
) |
||||||
|
], |
||||||
|
) |
||||||
|
def test_change_process_definition_attr(pre: Dict, post: Dict): |
||||||
|
"""Test whether process definition success when specific attribute change.""" |
||||||
|
assert pre.keys() == post.keys(), "Not equal keys for pre and post attribute." |
||||||
|
for attrs in [pre, post]: |
||||||
|
with ProcessDefinition(name=PROCESS_DEFINITION_NAME, **attrs) as pd: |
||||||
|
Shell(name=TASK_NAME, command="echo 1") |
||||||
|
pd.submit() |
Loading…
Reference in new issue