Add Gitea build, container tests and registry publication
All checks were successful
Build, test and publish / verify (push) Successful in 1m41s
All checks were successful
Build, test and publish / verify (push) Successful in 1m41s
This commit is contained in:
29
ci/tests/test_docker_configuration.py
Normal file
29
ci/tests/test_docker_configuration.py
Normal file
@@ -0,0 +1,29 @@
|
||||
import json
|
||||
from pathlib import Path
|
||||
import subprocess
|
||||
import tempfile
|
||||
import unittest
|
||||
|
||||
SCRIPT = Path(__file__).resolve().parents[1] / 'runner/configure-docker.py'
|
||||
|
||||
class DockerConfigurationTest(unittest.TestCase):
|
||||
def test_merge_preserves_existing_settings_and_is_idempotent(self):
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
path = Path(directory) / 'daemon.json'
|
||||
original = {'features': {'buildkit': True}, 'insecure-registries': ['existing:5000']}
|
||||
path.write_text(json.dumps(original))
|
||||
for _ in range(2):
|
||||
result = subprocess.run(['python3', str(SCRIPT), str(path)], capture_output=True, text=True)
|
||||
self.assertEqual(0, result.returncode, result.stderr)
|
||||
actual = json.loads(path.read_text())
|
||||
self.assertEqual(original['features'], actual['features'])
|
||||
self.assertEqual(['existing:5000', '192.168.2.28:3000'], actual['insecure-registries'])
|
||||
self.assertEqual(original, json.loads(path.with_name('daemon.json.before-agiledancers').read_text()))
|
||||
def test_invalid_configuration_is_left_unchanged(self):
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
path = Path(directory) / 'daemon.json'
|
||||
original = '{"insecure-registries": "invalid"}'
|
||||
path.write_text(original)
|
||||
result = subprocess.run(['python3', str(SCRIPT), str(path)], capture_output=True, text=True)
|
||||
self.assertNotEqual(0, result.returncode)
|
||||
self.assertEqual(original, path.read_text())
|
||||
Reference in New Issue
Block a user