testgenie-py 0.1.8__py3-none-any.whl → 0.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- testgen/.coverage +0 -0
- testgen/code_to_test/__init__.py +0 -0
- testgen/code_to_test/boolean.py +146 -0
- testgen/code_to_test/calculator.py +29 -0
- testgen/code_to_test/code_to_fuzz.py +234 -0
- testgen/code_to_test/code_to_fuzz_lite.py +397 -0
- testgen/code_to_test/decisions.py +57 -0
- testgen/code_to_test/math_utils.py +47 -0
- testgen/code_to_test/no_types.py +35 -0
- testgen/code_to_test/sample_code_bin.py +141 -0
- testgen/controller/docker_controller.py +31 -6
- testgen/docker/poetry.lock +599 -0
- testgen/q_table/global_q_table.json +1 -0
- testgen/tests/__init__.py +0 -0
- testgen/tests/test_decisions.py +195 -0
- {testgenie_py-0.1.8.dist-info → testgenie_py-0.2.0.dist-info}/METADATA +1 -1
- {testgenie_py-0.1.8.dist-info → testgenie_py-0.2.0.dist-info}/RECORD +19 -5
- {testgenie_py-0.1.8.dist-info → testgenie_py-0.2.0.dist-info}/WHEEL +0 -0
- {testgenie_py-0.1.8.dist-info → testgenie_py-0.2.0.dist-info}/entry_points.txt +0 -0
@@ -5,6 +5,9 @@ import docker
|
|
5
5
|
from docker import DockerClient, client
|
6
6
|
from docker import errors
|
7
7
|
from docker.models.containers import Container
|
8
|
+
import importlib.resources as pkg_resources
|
9
|
+
import tempfile
|
10
|
+
import shutil
|
8
11
|
|
9
12
|
from testgen.service.logging_service import get_logger
|
10
13
|
from testgen.service.service import Service
|
@@ -99,8 +102,7 @@ class DockerController:
|
|
99
102
|
print(f"Building {image_name} Docker image...")
|
100
103
|
|
101
104
|
# Look for Dockerfile in the project root
|
102
|
-
|
103
|
-
dockerfile_path = os.path.join(docker_dir, "Dockerfile")
|
105
|
+
dockerfile_path = self.get_dockerfile_path()
|
104
106
|
if not os.path.exists(dockerfile_path):
|
105
107
|
print(f"Dockerfile not found at {dockerfile_path}")
|
106
108
|
sys.exit(1)
|
@@ -134,7 +136,7 @@ class DockerController:
|
|
134
136
|
|
135
137
|
return docker_client.containers.run(
|
136
138
|
image=image_name,
|
137
|
-
command=["
|
139
|
+
command=["python", "-m", "testgen.main"] + docker_args,
|
138
140
|
volumes={project_root: {"bind": "/controller", "mode": "rw"}},
|
139
141
|
environment=docker_env,
|
140
142
|
detach=True,
|
@@ -146,13 +148,17 @@ class DockerController:
|
|
146
148
|
def build_docker_image(self, docker_client, image_name, dockerfile_path, project_root):
|
147
149
|
try:
|
148
150
|
print(f"Starting Docker build for image: {image_name}")
|
151
|
+
dockerfile_rel_path = os.path.relpath(dockerfile_path, project_root)
|
152
|
+
docker_dir = os.path.dirname(dockerfile_path)
|
153
|
+
|
149
154
|
dockerfile_rel_path = os.path.relpath(dockerfile_path, project_root)
|
150
155
|
self.debug(f"Project root {project_root}")
|
151
|
-
self.debug(f"Docker directory: {
|
156
|
+
self.debug(f"Docker directory: {docker_dir}")
|
152
157
|
self.debug(f"Docker rel path: {dockerfile_rel_path}")
|
158
|
+
|
153
159
|
build_progress = docker_client.api.build(
|
154
|
-
path=
|
155
|
-
dockerfile=
|
160
|
+
path=docker_dir, # now it knows what docker_dir is
|
161
|
+
dockerfile=dockerfile_path,
|
156
162
|
tag=image_name,
|
157
163
|
rm=True,
|
158
164
|
decode=True
|
@@ -178,6 +184,25 @@ class DockerController:
|
|
178
184
|
print(f"Unexpected error during Docker build: {str(e)}")
|
179
185
|
return False
|
180
186
|
|
187
|
+
def get_dockerfile_path(self) -> str:
|
188
|
+
# First, try local development path
|
189
|
+
local_dockerfile = os.path.join(os.path.dirname(__file__), "docker", "Dockerfile")
|
190
|
+
if os.path.exists(local_dockerfile):
|
191
|
+
self.debug(f"Found local Dockerfile at: {local_dockerfile}")
|
192
|
+
return local_dockerfile
|
193
|
+
|
194
|
+
# If not found locally, try inside installed package
|
195
|
+
try:
|
196
|
+
dockerfile_resource = pkg_resources.files('testgen').joinpath('docker/Dockerfile')
|
197
|
+
if dockerfile_resource.is_file():
|
198
|
+
self.debug(f"Found package-installed Dockerfile at: {dockerfile_resource}")
|
199
|
+
return str(dockerfile_resource)
|
200
|
+
except Exception as e:
|
201
|
+
print(f"Error locating Dockerfile in package resources: {e}")
|
202
|
+
|
203
|
+
print("Dockerfile not found in local project or package.")
|
204
|
+
sys.exit(1)
|
205
|
+
|
181
206
|
def debug(self, message: str):
|
182
207
|
"""Log debug message"""
|
183
208
|
if self.debug_mode:
|