Commit 07737386 authored by Dom Sekotill's avatar Dom Sekotill
Browse files

Upgrade behave_utils to 0.4

parent c673cf22
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -93,4 +93,4 @@ repos:
    args: ["--python-version=3.9"]
    additional_dependencies:
    - types-requests
    - behave-utils ~=0.3.3
    - behave-utils ~=0.4.1
+1 −1
Original line number Diff line number Diff line
Python ~=3.9; python_version < '3.9'

behave
behave-utils ~=0.3.2
behave-utils ~=0.4.0
requests ~=2.26
typing-extensions ~=4.0
+11 −12
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ from behave_utils.docker import Container as Container
from behave_utils.docker import Image
from behave_utils.docker import IPv4Address
from behave_utils.docker import Network
from behave_utils.docker import inspect
from behave_utils.mysql import Mysql
from typing_extensions import Self

@@ -78,7 +79,7 @@ class Wordpress(Container):
		with self:
			self.start()
			cmd = ["bash", "-c", "[[ /proc/1/exe -ef `which php-fpm` ]]"]
			wait(lambda: self.is_running() and self.run(cmd).returncode == 0, timeout=600)
			wait(lambda: self.run(cmd).returncode == 0, timeout=600)
			yield self


@@ -127,14 +128,12 @@ class Site:
		"""
		Return a context that constructs a ready-to-go instance on entry
		"""
		test_dir = Path(__file__).parent
		db_init = test_dir / "mysql-init.sql"

		with Network() as network, Mysql(network=network, init_files=[db_init]) as database:
			database.start()  # Get a head start on initialising the database
			with \
				Wordpress(site_url, database, network=network) as backend, \
				Nginx(backend, network=network) as frontend:
		with (
			Network() as network,
			Mysql(network=network) as database,
			Wordpress(site_url, database, network=network) as backend,
			Nginx(backend, network=network) as frontend,
		):
			yield cls(site_url, network, frontend, backend, database)

	@contextmanager
@@ -146,7 +145,7 @@ class Site:
			yield self
			return
		self._running = True
		with self.database.started(), self.backend.started(), self.frontend.started():
		with self.backend.started(), self.frontend.started():
			try:
				yield self
			finally:
@@ -163,7 +162,7 @@ class Site:
				raise RuntimeError(
					"Site.address may only be accessed inside a Site.running() context",
				)
			self._address = self.frontend.inspect().path(
			self._address = inspect(self.frontend).path(
				f"$.NetworkSettings.Networks.{self.network}.IPAddress",
				str, IPv4Address,
			)