make devopsBuild ddd
parent
aaba741bf4
commit
54e3f7f41a
@ -0,0 +1,8 @@
|
||||
from .domain import Build
|
||||
from .python_util import execute
|
||||
|
||||
|
||||
class BuildService():
|
||||
def initialize_build_dir(self, build: Build):
|
||||
execute('rm -rf ' + build.build_path(), shell=True)
|
||||
execute('mkdir -p ' + build.build_path(), shell=True)
|
@ -0,0 +1,50 @@
|
||||
from typing import List
|
||||
from .python_util import filter_none
|
||||
|
||||
|
||||
class Validateable():
|
||||
def validate(self) -> List[str]:
|
||||
return []
|
||||
|
||||
def is_valid(self) -> bool:
|
||||
return len(self.validate()) < 1
|
||||
|
||||
def validate_is_not_empty(self, field_name: str) -> List[str]:
|
||||
value = self.__dict__[field_name]
|
||||
if value is None or value == '':
|
||||
return [f"Field '{field_name}' may not be empty."]
|
||||
else:
|
||||
return []
|
||||
|
||||
class Build(Validateable):
|
||||
|
||||
def __init__(self, project, config):
|
||||
# deprecate stage
|
||||
self.stage = config['stage']
|
||||
self.project_root_path = config['project_root_path']
|
||||
self.module = config['module']
|
||||
self.build_dir_name = config['build_dir_name']
|
||||
self.stack = {}
|
||||
self.project = project
|
||||
|
||||
def name(self):
|
||||
return self.project.name
|
||||
|
||||
def build_path(self):
|
||||
path = [self.project_root_path,
|
||||
self.build_dir_name,
|
||||
self.name(),
|
||||
self.module]
|
||||
return '/'.join(filter_none(path))
|
||||
|
||||
def put(self, key, value):
|
||||
self.stack[key] = value
|
||||
|
||||
def get(self, key):
|
||||
return self.stack[key]
|
||||
|
||||
def get_keys(self, keys):
|
||||
result = {}
|
||||
for key in keys:
|
||||
result[key] = self.get(key)
|
||||
return result
|
@ -0,0 +1,41 @@
|
||||
from src.main.python.ddadevops.domain import Validateable
|
||||
|
||||
|
||||
class TestValidateable(Validateable):
|
||||
def __init__(self, value):
|
||||
self.field = value
|
||||
|
||||
def validate(self):
|
||||
return self.validate_is_not_empty('field')
|
||||
|
||||
|
||||
def test_should_validate_non_empty_strings():
|
||||
|
||||
sut = TestValidateable("content")
|
||||
assert sut.is_valid()
|
||||
|
||||
sut = TestValidateable(None)
|
||||
assert not sut.is_valid()
|
||||
|
||||
sut = TestValidateable('')
|
||||
assert not sut.is_valid()
|
||||
|
||||
|
||||
def test_should_validate_non_empty_others():
|
||||
|
||||
sut = TestValidateable(1)
|
||||
assert sut.is_valid()
|
||||
|
||||
sut = TestValidateable(1.0)
|
||||
assert sut.is_valid()
|
||||
|
||||
sut = TestValidateable(True)
|
||||
assert sut.is_valid()
|
||||
|
||||
sut = TestValidateable(None)
|
||||
assert not sut.is_valid()
|
||||
|
||||
def test_validate_with_reason():
|
||||
|
||||
sut = TestValidateable(None)
|
||||
assert sut.validate()[0] == "Field 'field' may not be empty."
|
Loading…
Reference in New Issue