Skip to content

Commit 8216c97

Browse files
committed
Stop using SERVICE_TEMPLATE and use ObsPackage._service_file_contents instead
1 parent dd16f6b commit 8216c97

2 files changed

Lines changed: 46 additions & 84 deletions

File tree

src/bci_build/templates.py

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -190,30 +190,3 @@
190190
</image>
191191
"""
192192
)
193-
194-
#: Jinja2 template used to generate :file:`_service`.
195-
SERVICE_TEMPLATE = jinja2.Template(
196-
"""<services>
197-
<service mode="buildtime" name="{{ image.build_recipe_type }}_label_helper"/>
198-
<service mode="buildtime" name="kiwi_metainfo_helper"/>
199-
{%- set all_build_flavors = [""] %}
200-
{%- if image.crate and image.build_flavor %}
201-
{%- set all_build_flavors = image.crate.all_build_flavors(image) %}
202-
{%- endif %}
203-
{%- for flavor in all_build_flavors %}
204-
{%- for replacement in image.replacements_via_service %}
205-
<service name="replace_using_package_version" mode="buildtime">
206-
<param name="file">
207-
{%- if replacement.file_name != None %}{{replacement.file_name}}
208-
{%- elif (image.build_recipe_type|string) == "docker" %}{% if flavor %}Dockerfile.{{ flavor }}{% else %}Dockerfile{% endif %}
209-
{%- else %}{{ image.package_name }}.kiwi
210-
{%- endif %}</param>
211-
<param name="regex">{{ replacement.regex_in_build_description }}</param>
212-
<param name="package">{{ replacement.package_name }}</param>{% if replacement.parse_version %}
213-
<param name="parse-version">{{ replacement.parse_version }}</param>{% endif %}
214-
</service>
215-
{%- endfor -%}
216-
{% endfor %}
217-
</services>
218-
"""
219-
)

tests/test_service.py

Lines changed: 46 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
import pytest
22

33
from bci_build.container_attributes import BuildType
4-
from bci_build.containercrate import ContainerCrate
54
from bci_build.os_version import OsVersion
65
from bci_build.package import DevelopmentContainer
76
from bci_build.package import ParseVersion
87
from bci_build.package import Replacement
8+
from bci_build.package.obs_package import MultiBuildObsPackage
99
from bci_build.service import Service
10-
from bci_build.templates import SERVICE_TEMPLATE
1110

1211

1312
def test_service_without_params_as_xml():
@@ -26,7 +25,7 @@ def test_service_with_params_as_xml():
2625
[
2726
# bare bone example
2827
(
29-
Replacement(regex := "%ver%", pkg := "pkgFoo"),
28+
Replacement(regex := "%%ver%%", pkg := "pkgFoo"),
3029
"Dockerfile",
3130
Service(
3231
name=(name := "replace_using_package_version"),
@@ -76,37 +75,35 @@ def test_replacement_to_service(
7675

7776
def test_service_without_replacement_kiwi():
7877
assert (
79-
SERVICE_TEMPLATE.render(
80-
image=DevelopmentContainer(**_BASE_KWARGS, build_recipe_type=BuildType.KIWI)
81-
)
78+
DevelopmentContainer(
79+
**_BASE_KWARGS, build_recipe_type=BuildType.KIWI
80+
)._service_file_contents
8281
== """<services>
83-
<service mode="buildtime" name="kiwi_label_helper"/>
84-
<service mode="buildtime" name="kiwi_metainfo_helper"/>
82+
<service name="kiwi_label_helper" mode="buildtime" />
83+
<service name="kiwi_metainfo_helper" mode="buildtime" />
8584
</services>"""
8685
)
8786

8887

8988
def test_service_with_replacement_kiwi():
9089
assert (
91-
SERVICE_TEMPLATE.render(
92-
image=DevelopmentContainer(
93-
**_BASE_KWARGS,
94-
build_recipe_type=BuildType.KIWI,
95-
replacements_via_service=[
96-
Replacement(
97-
regex_in_build_description="%%re%%", package_name="coreutils"
98-
),
99-
Replacement(
100-
regex_in_build_description="%%re%%",
101-
package_name="coreutils",
102-
file_name="replacementfile",
103-
),
104-
],
105-
)
106-
)
90+
DevelopmentContainer(
91+
**_BASE_KWARGS,
92+
build_recipe_type=BuildType.KIWI,
93+
replacements_via_service=[
94+
Replacement(
95+
regex_in_build_description="%%re%%", package_name="coreutils"
96+
),
97+
Replacement(
98+
regex_in_build_description="%%re%%",
99+
package_name="coreutils",
100+
file_name="replacementfile",
101+
),
102+
],
103+
)._service_file_contents
107104
== """<services>
108-
<service mode="buildtime" name="kiwi_label_helper"/>
109-
<service mode="buildtime" name="kiwi_metainfo_helper"/>
105+
<service name="kiwi_label_helper" mode="buildtime" />
106+
<service name="kiwi_metainfo_helper" mode="buildtime" />
110107
<service name="replace_using_package_version" mode="buildtime">
111108
<param name="file">test-image.kiwi</param>
112109
<param name="regex">%%re%%</param>
@@ -123,31 +120,27 @@ def test_service_with_replacement_kiwi():
123120

124121
def test_service_with_replacement_docker():
125122
assert (
126-
SERVICE_TEMPLATE.render(
127-
image=DevelopmentContainer(
128-
**_BASE_KWARGS,
129-
build_recipe_type=BuildType.DOCKER,
130-
replacements_via_service=[
131-
Replacement(
132-
regex_in_build_description="%%my_ver%%", package_name="sh"
133-
),
134-
Replacement(
135-
regex_in_build_description="%%minor_ver%%",
136-
package_name="filesystem",
137-
parse_version=ParseVersion.MINOR,
138-
),
139-
Replacement(
140-
regex_in_build_description="%%minor_ver%%",
141-
file_name="replacementfile",
142-
package_name="filesystem",
143-
parse_version=ParseVersion.MINOR,
144-
),
145-
],
146-
)
147-
)
123+
DevelopmentContainer(
124+
**_BASE_KWARGS,
125+
build_recipe_type=BuildType.DOCKER,
126+
replacements_via_service=[
127+
Replacement(regex_in_build_description="%%my_ver%%", package_name="sh"),
128+
Replacement(
129+
regex_in_build_description="%%minor_ver%%",
130+
package_name="filesystem",
131+
parse_version=ParseVersion.MINOR,
132+
),
133+
Replacement(
134+
regex_in_build_description="%%minor_ver%%",
135+
file_name="replacementfile",
136+
package_name="filesystem",
137+
parse_version=ParseVersion.MINOR,
138+
),
139+
],
140+
)._service_file_contents
148141
== """<services>
149-
<service mode="buildtime" name="docker_label_helper"/>
150-
<service mode="buildtime" name="kiwi_metainfo_helper"/>
142+
<service name="docker_label_helper" mode="buildtime" />
143+
<service name="kiwi_metainfo_helper" mode="buildtime" />
151144
<service name="replace_using_package_version" mode="buildtime">
152145
<param name="file">Dockerfile</param>
153146
<param name="regex">%%my_ver%%</param>
@@ -181,15 +174,11 @@ def test_service_with_multi_flavor_docker():
181174
)
182175
for flavor in ("flavor1", "flavor2")
183176
]
184-
ContainerCrate(containers)
185-
186177
assert (
187-
SERVICE_TEMPLATE.render(
188-
image=containers[0],
189-
)
178+
MultiBuildObsPackage.from_bcis(containers)._service_file_contents
190179
== """<services>
191-
<service mode="buildtime" name="docker_label_helper"/>
192-
<service mode="buildtime" name="kiwi_metainfo_helper"/>
180+
<service name="docker_label_helper" mode="buildtime" />
181+
<service name="kiwi_metainfo_helper" mode="buildtime" />
193182
<service name="replace_using_package_version" mode="buildtime">
194183
<param name="file">Dockerfile.flavor1</param>
195184
<param name="regex">%%my_ver%%</param>

0 commit comments

Comments
 (0)