Skip to content

Commit 90261c0

Browse files
#212: Updating dependencies and Python to 3.10 (#213)
fixes #212 --------- Co-authored-by: Christoph Pirkl <[email protected]>
1 parent f906087 commit 90261c0

File tree

18 files changed

+280
-197
lines changed

18 files changed

+280
-197
lines changed

.github/actions/prepare_poetry_env/action.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ inputs:
44
python-version:
55
description: 'The Python version to use'
66
required: true
7-
default: '3.8'
7+
default: '3.10'
88
runs:
99
using: "composite"
1010
steps:
@@ -13,7 +13,7 @@ runs:
1313
python-version: ${{ inputs.python-version }}
1414
- uses: abatilo/actions-poetry@v2
1515
with:
16-
poetry-version: 1.4.2
16+
poetry-version: 1.8.2
1717
- name: Poetry install
1818
run: poetry install
1919
shell: bash

.github/workflows/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
exasol_version:
3333
- "default"
3434
python_version:
35-
- 3.8
35+
- 3.10
3636
test-path: ${{fromJson(needs.prep-testbed.outputs.matrix)}}
3737
runs-on: ubuntu-latest
3838
name: ${{ matrix.test-path.name }}

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ the following prerequisites:
2626
* sha512sum
2727
* sed
2828
* [curl](https://curl.se/)
29-
* Python 3 (>=3.8)
29+
* Python 3 (>=3.10)
3030
* Pip
3131

3232

doc/changes/changelog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Changes
22

3+
* [0.19.0](changes_0.19.0.md)
34
* [0.18.3](changes_0.18.3.md)
45
* [0.18.2](changes_0.18.2.md)
56
* [0.18.1](changes_0.18.1.md)

doc/changes/changes_0.19.0.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Script-Languages-Container-Tool 0.19.0, released 2024-05-22
2+
3+
Code name: Updated dependencies
4+
5+
## Summary
6+
7+
This releases updated the dependency to exasol-integration-test-docker-environment.
8+
9+
## Refactorings
10+
11+
- #212: Updating dependencies and Python
12+

docker_runner/Dockerfile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM ubuntu:20.04
1+
FROM ubuntu:22.04
22
ENV DEBIAN_FRONTEND=noninteractive
33

44
COPY ext/01_nodoc /etc/dpkg/dpkg.cfg.d/01_nodoc
@@ -7,7 +7,7 @@ RUN apt-get -y update && \
77
apt-get -y install --no-install-recommends\
88
ca-certificates \
99
locales \
10-
python3.8-venv \
10+
python3.10-venv \
1111
git \
1212
bash \
1313
curl && \
@@ -17,7 +17,7 @@ RUN apt-get -y update && \
1717
apt-get -y autoremove && \
1818
ldconfig
1919

20-
RUN curl https://bootstrap.pypa.io/get-pip.py | python3.8
20+
RUN curl https://bootstrap.pypa.io/get-pip.py | python3.10
2121

2222
ENV LC_ALL=C.UTF-8
2323
ENV LANG=C.UTF-8
@@ -30,7 +30,7 @@ COPY LICENSE /script-languages-container-tool/LICENSE
3030
COPY README.md /script-languages-container-tool/README.md
3131

3232
WORKDIR /script-languages-container-tool
33-
RUN python3.8 -m pip install .
33+
RUN python3.10 -m pip install .
3434

3535
RUN mkdir -p runner
3636
COPY docker_runner/ /docker_runner

exasol_script_languages_container_tool/cli/commands/run_db_tests.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ def run_db_test(flavor_path: Tuple[str, ...],
9494
external_exasol_db_host: Optional[str],
9595
external_exasol_db_port: int,
9696
external_exasol_bucketfs_port: int,
97+
external_exasol_ssh_port: Optional[int],
9798
external_exasol_db_user: Optional[str],
9899
external_exasol_db_password: Optional[str],
99100
external_exasol_bucketfs_write_password: Optional[str],
@@ -161,6 +162,7 @@ def run_db_test(flavor_path: Tuple[str, ...],
161162
external_exasol_bucketfs_port=external_exasol_bucketfs_port,
162163
external_exasol_db_user=external_exasol_db_user,
163164
external_exasol_db_password=external_exasol_db_password,
165+
external_exasol_ssh_port=external_exasol_ssh_port,
164166
external_exasol_bucketfs_write_password=external_exasol_bucketfs_write_password,
165167
external_exasol_xmlrpc_host=external_exasol_xmlrpc_host,
166168
external_exasol_xmlrpc_port=external_exasol_xmlrpc_port,

exasol_script_languages_container_tool/lib/api/run_db_tests.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
from exasol_integration_test_docker_environment.lib.api.common import run_task, generate_root_task, \
66
set_docker_repository_config, set_build_config, import_build_steps, cli_function
77
from exasol_integration_test_docker_environment.lib.base.dependency_logger_base_task import DependencyLoggerBaseTask
8+
from exasol_integration_test_docker_environment.lib.test_environment.parameter.docker_db_test_environment_parameter import \
9+
DbOsAccess
810

911
from exasol_script_languages_container_tool.lib.api import api_errors
1012
from exasol_script_languages_container_tool.lib.tasks.test.test_container import TestContainer, AllTestsResult
@@ -30,7 +32,8 @@ def run_db_test(flavor_path: Tuple[str, ...],
3032
additional_db_parameter: Tuple[str, ...] = tuple(),
3133
external_exasol_db_host: Optional[str] = None,
3234
external_exasol_db_port: int = 8563,
33-
external_exasol_bucketfs_port: int = 6583,
35+
external_exasol_bucketfs_port: int = 2580,
36+
external_exasol_ssh_port: Optional[int] = None,
3437
external_exasol_db_user: Optional[str] = None,
3538
external_exasol_db_password: Optional[str] = None,
3639
external_exasol_bucketfs_write_password: Optional[str] = None,
@@ -125,6 +128,7 @@ def root_task_generator() -> DependencyLoggerBaseTask:
125128
reuse_database_setup=reuse_database_setup,
126129
reuse_test_container=reuse_test_container,
127130
reuse_database=reuse_database,
131+
db_os_access=DbOsAccess[db_os_access],
128132
no_test_container_cleanup_after_success=reuse_test_container,
129133
no_test_container_cleanup_after_failure=reuse_test_container,
130134
no_database_cleanup_after_success=reuse_database,
@@ -137,6 +141,7 @@ def root_task_generator() -> DependencyLoggerBaseTask:
137141
external_exasol_bucketfs_port=external_exasol_bucketfs_port,
138142
external_exasol_db_user=external_exasol_db_user,
139143
external_exasol_db_password=external_exasol_db_password,
144+
external_exasol_ssh_port=external_exasol_ssh_port,
140145
external_exasol_bucketfs_write_password=external_exasol_bucketfs_write_password,
141146
external_exasol_xmlrpc_host=external_exasol_xmlrpc_host,
142147
external_exasol_xmlrpc_port=external_exasol_xmlrpc_port,

exasol_script_languages_container_tool/lib/tasks/test/run_db_test.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ def run_test_command(self, docker_client: docker.client, bash_cmd: str,
106106
def generate_test_command(self) -> str:
107107
credentials = f"--user '{self.db_user}' --password '{self.db_password}'"
108108
log_level = f"--loglevel={self.test_log_level}"
109-
server = f"--server '{self._database_info.host}:{self._database_info.db_port}'"
109+
server = f"--server '{self._database_info.host}:{self._database_info.ports.database}'"
110110
environment = "--driver=/downloads/ODBC/lib/linux/x86_64/libexaodbc-uo2214lv2.so " \
111111
"--jdbc-path /downloads/JDBC/exajdbc.jar"
112112
language_definition = f"--script-languages '{self.language_definition}'"

exasol_script_languages_container_tool/lib/tasks/test/test_runner_db_test_task.py

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@
22
from typing import Generator, Any, Dict
33

44
import luigi
5+
from docker.models.containers import ExecResult
6+
from exasol_integration_test_docker_environment.lib.base.db_os_executor import DbOsExecFactory, SshExecFactory, \
7+
DockerClientFactory, DockerExecFactory, DbOsExecutor
8+
from exasol_integration_test_docker_environment.lib.base.json_pickle_parameter import JsonPickleParameter
9+
from exasol_integration_test_docker_environment.lib.data.database_info import DatabaseInfo
10+
from exasol_integration_test_docker_environment.lib.test_environment.parameter.docker_db_test_environment_parameter import \
11+
DbOsAccess
12+
513
from exasol_script_languages_container_tool.lib.tasks.export.export_containers import ExportFlavorContainer
614
from exasol_script_languages_container_tool.lib.tasks.export.export_info import ExportInfo
715
from exasol_script_languages_container_tool.lib.tasks.test.populate_test_engine import PopulateTestEngine
@@ -19,6 +27,26 @@
1927
from exasol_integration_test_docker_environment.lib.test_environment.spawn_test_environment import SpawnTestEnvironment
2028

2129

30+
class DummyExecutor(DbOsExecutor):
31+
32+
def exec(self, cmd: str) -> ExecResult:
33+
raise RuntimeError("Not supposed to be called.")
34+
35+
def prepare(self):
36+
pass
37+
38+
def __enter__(self):
39+
return self
40+
41+
def __exit__(self, type_, value, traceback):
42+
pass
43+
44+
45+
class DummyExecFactory(DbOsExecFactory):
46+
def executor(self) -> DbOsExecutor:
47+
return DummyExecutor()
48+
49+
2250
class TestRunnerDBTestTask(FlavorBaseTask,
2351
SpawnTestEnvironmentParameter,
2452
RunDBTestsInTestConfigParameter):
@@ -63,6 +91,15 @@ def run_task(self):
6391
test_results = yield from self.run_test(self.test_environment_info, export_info)
6492
self.return_object(test_results)
6593

94+
def _executor_factory(self, database_info: DatabaseInfo) -> DbOsExecFactory:
95+
96+
if self.db_os_access == DbOsAccess.SSH:
97+
return SshExecFactory.from_database_info(database_info)
98+
client_factory = DockerClientFactory(timeout=100000)
99+
if database_info.container_info is not None:
100+
return DockerExecFactory(database_info.container_info.container_name, client_factory)
101+
return DummyExecFactory()
102+
66103
def upload_container(self, database_credentials: DatabaseCredentials, export_info: ExportInfo):
67104
reuse = \
68105
self.reuse_database and \
@@ -75,7 +112,8 @@ def upload_container(self, database_credentials: DatabaseCredentials, export_inf
75112
test_environment_info=self.test_environment_info,
76113
release_name=export_info.name,
77114
reuse_uploaded=reuse,
78-
bucketfs_write_password=database_credentials.bucketfs_write_password
115+
bucketfs_write_password=database_credentials.bucketfs_write_password,
116+
executor_factory=self._executor_factory(self.test_environment_info.database_info)
79117
)
80118
yield from self.run_dependencies(upload_task)
81119

0 commit comments

Comments
 (0)