stoobly-agent 1.6.0__py3-none-any.whl → 1.6.1__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.
stoobly_agent/__init__.py CHANGED
@@ -1,2 +1,2 @@
1
1
  COMMAND = 'stoobly-agent'
2
- VERSION = '1.6.0'
2
+ VERSION = '1.6.1'
@@ -3,6 +3,7 @@ import os
3
3
  import pdb
4
4
  import subprocess
5
5
  import re
6
+ import yaml
6
7
 
7
8
  from typing import TypedDict
8
9
 
@@ -137,9 +138,10 @@ class WorkflowRunCommand(WorkflowCommand):
137
138
  # Add docker compose file
138
139
  command_options.append(f"-f {os.path.relpath(self.compose_path, self.__current_working_dir)}")
139
140
 
141
+ can_build = False
142
+
140
143
  # Add custom docker compose file
141
144
  custom_services = self.custom_services
142
-
143
145
  if custom_services:
144
146
  uses_profile = False
145
147
  for service_name in custom_services:
@@ -153,10 +155,18 @@ class WorkflowRunCommand(WorkflowCommand):
153
155
  # TODO: looking into why warning does not print in docker
154
156
  Logger.instance(LOG_ID).error(f"Missing {self.workflow_name} profile in custom compose file")
155
157
 
156
- command_options.append(f"-f {os.path.relpath(self.custom_compose_path, self.__current_working_dir)}")
158
+ compose_file_path = os.path.relpath(self.custom_compose_path, self.__current_working_dir)
159
+ command_options.append(f"-f {compose_file_path}")
160
+
161
+ if self.__can_build(compose_file_path):
162
+ can_build = True
157
163
 
158
164
  if options.get('extra_compose_path'):
159
- command_options.append(f"-f {os.path.relpath(options['extra_compose_path'], self.__current_working_dir)}")
165
+ compose_file_path = os.path.relpath(options['extra_compose_path'], self.__current_working_dir)
166
+ command_options.append(f"-f {compose_file_path}")
167
+
168
+ if self.__can_build(compose_file_path):
169
+ can_build = True
160
170
 
161
171
  command_options.append(f"--profile {self.workflow_name}")
162
172
 
@@ -167,7 +177,7 @@ class WorkflowRunCommand(WorkflowCommand):
167
177
  command += command_options
168
178
  command.append('up')
169
179
 
170
- if options.get('build'):
180
+ if options.get('build') and can_build:
171
181
  command.append('--build')
172
182
 
173
183
  if options.get('pull'):
@@ -273,6 +283,20 @@ class WorkflowRunCommand(WorkflowCommand):
273
283
  WorkflowEnv(self.workflow_path).write(env_vars)
274
284
  return env_vars
275
285
 
286
+ def __can_build(self, compose_path: str) -> bool:
287
+ if not os.path.exists(compose_path):
288
+ return False
289
+
290
+ with open(compose_path, 'r') as f:
291
+ compose = yaml.safe_load(f)
292
+
293
+ services = compose.get('services', {})
294
+ for service_name, service in services.items():
295
+ if 'build' in service:
296
+ # Either build is a string (context) or dict (with context/Dockerfile)
297
+ return True
298
+ return False
299
+
276
300
  def __find_nameservers(self, dns_resolver: dns.resolver.Resolver):
277
301
  nameservers = dns_resolver.nameservers
278
302
 
@@ -1 +1 @@
1
- 1.6.0
1
+ 1.6.1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: stoobly-agent
3
- Version: 1.6.0
3
+ Version: 1.6.1
4
4
  Summary: Record, mock, and test HTTP(s) requests. CLI agent for Stoobly
5
5
  License: Apache-2.0
6
6
  Author: Matt Le
@@ -1,4 +1,4 @@
1
- stoobly_agent/__init__.py,sha256=TM4vLT3nBQHUT5LNq3_-gdGwhi2Hi7Wi03PL9m0OyhU,44
1
+ stoobly_agent/__init__.py,sha256=iNNlTNbNNPYIjvmJh6qArdUsWMo0EWYVZbrMdnBK2AA,44
2
2
  stoobly_agent/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  stoobly_agent/app/api/__init__.py,sha256=ctkB8KR-eXO0SFhj602huHiyvQ3PslFWd8fkcufgrAI,1000
4
4
  stoobly_agent/app/api/application_http_request_handler.py,sha256=Vvz53yB0bR7J-QqMAkLlhcZrA4P64ZEN7w8cMbgl6o0,5261
@@ -195,7 +195,7 @@ stoobly_agent/app/cli/scaffold/workflow_copy_command.py,sha256=R9hh5dWVz7vGld7pE
195
195
  stoobly_agent/app/cli/scaffold/workflow_create_command.py,sha256=WmGKoqJqOkhL40oLCo8PnWhBKdfbY0dO2UtRn1IKynE,3504
196
196
  stoobly_agent/app/cli/scaffold/workflow_env.py,sha256=x8V5pJmIiklD3f2q2-qq-CORf4YaXYq_r2JpR2MmSwk,416
197
197
  stoobly_agent/app/cli/scaffold/workflow_log_command.py,sha256=Bke4lMOMxuDUFuAx9nlXHbKgYMO4KAg9ASHvjz4aVWc,1372
198
- stoobly_agent/app/cli/scaffold/workflow_run_command.py,sha256=RxedzSKZu3W-vfrX7NQuVoPUrUTbXaPFzb_QE26c3eU,9933
198
+ stoobly_agent/app/cli/scaffold/workflow_run_command.py,sha256=1XFlosc3a3Amev5uW3tECwZoIBYVCJsFqG2bGtAHvgg,10652
199
199
  stoobly_agent/app/cli/scaffold/workflow_validate_command.py,sha256=fhHciJXg_u32Wmh8us8LhgQj8D1SxkBADtuBBF4K0FM,4377
200
200
  stoobly_agent/app/cli/scaffold_cli.py,sha256=AoWqSRXXQrqK0YeSHLJkNRTOC23PHrjJBNrq_A8KZnc,28316
201
201
  stoobly_agent/app/cli/scenario_cli.py,sha256=3J1EiJOvunkfWrEkOsanw-XrKkOk78ij_GjBlE9p7CE,8229
@@ -697,7 +697,7 @@ stoobly_agent/test/app/models/factories/resource/local_db/helpers/log_test.py,sh
697
697
  stoobly_agent/test/app/models/factories/resource/local_db/helpers/tiebreak_scenario_request_test.py,sha256=a1SFLyEyRRLuADvAw6ckQQKORFXvyK1lyrbkaLWx8oU,3399
698
698
  stoobly_agent/test/app/models/factories/resource/local_db/request_adapter_test.py,sha256=Pzq1cBPnP9oSWG-p0c-VoymoHxgp483QmNwmV1b78RA,8453
699
699
  stoobly_agent/test/app/models/factories/resource/local_db/response_adapter_test.py,sha256=9P95EKH5rZGOrmRkRIDlQZqtiLJHk9735og18Ffwpfw,2204
700
- stoobly_agent/test/app/models/schemas/.stoobly/db/VERSION,sha256=ViNosgpkvpVlG7gka3Qg9_zlVTjf-Zmu-qeGYqFNDTk,5
700
+ stoobly_agent/test/app/models/schemas/.stoobly/db/VERSION,sha256=_f4T1QzFg0lLC81UhhuJRJ7MIzez92MEH4M0zL1X0Wc,5
701
701
  stoobly_agent/test/app/models/schemas/.stoobly/db/stoobly_agent.sqlite3,sha256=ch8gNx6zIelLKQx65gwFx_LRNqUD3EC5xcHZ0ukIQiU,188416
702
702
  stoobly_agent/test/app/models/schemas/.stoobly/settings.yml,sha256=vLwMjweKOdod6tSLtIlyBefPQuNXq9wio4kBaODKtAU,726
703
703
  stoobly_agent/test/app/models/schemas/.stoobly/tmp/options.json,sha256=OTRzarwus48CTrItedXCrgQttJHSEZonEYc7R_knvYg,2212
@@ -738,8 +738,8 @@ stoobly_agent/test/mock_data/scaffold/docker-compose-local-service.yml,sha256=_t
738
738
  stoobly_agent/test/mock_data/scaffold/index.html,sha256=qJwuYajKZ4ihWZrJQ3BNObV5kf1VGnnm_vqlPJzdqLE,258
739
739
  stoobly_agent/test/mock_data/uspto.yaml,sha256=6U5se7C3o-86J4m9xpOk9Npias399f5CbfWzR87WKwE,7835
740
740
  stoobly_agent/test/test_helper.py,sha256=m_oAI7tmRYCNZdKfNqISWhMv3e44tjeYViQ3nTUfnos,1007
741
- stoobly_agent-1.6.0.dist-info/LICENSE,sha256=o93sj12cdoEOsTCjPaPFsw3Xq0SXs3pPcY-9reE2sEw,548
742
- stoobly_agent-1.6.0.dist-info/METADATA,sha256=PLIHPqK1X6t0ryAPpFqbk-mDEeaxzBmsl-QYeZVIQRo,3087
743
- stoobly_agent-1.6.0.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
744
- stoobly_agent-1.6.0.dist-info/entry_points.txt,sha256=aq5wix5oC8MDQtmyPGU0xaFrsjJg7WH28NmXh2sc3Z8,56
745
- stoobly_agent-1.6.0.dist-info/RECORD,,
741
+ stoobly_agent-1.6.1.dist-info/LICENSE,sha256=o93sj12cdoEOsTCjPaPFsw3Xq0SXs3pPcY-9reE2sEw,548
742
+ stoobly_agent-1.6.1.dist-info/METADATA,sha256=daCy3CxjBe_8ieKmVXg26SO_pDfCnh-ErkWJf2h_-wI,3087
743
+ stoobly_agent-1.6.1.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
744
+ stoobly_agent-1.6.1.dist-info/entry_points.txt,sha256=aq5wix5oC8MDQtmyPGU0xaFrsjJg7WH28NmXh2sc3Z8,56
745
+ stoobly_agent-1.6.1.dist-info/RECORD,,