Skip to content

Commit 7e61d9f

Browse files
mmathesiussgallagher
authored andcommitted
Add meaningful stream expansion and upgrade tests now that ordering can be
relied upon. Signed-off-by: Merlin Mathesius <[email protected]>
1 parent 695556f commit 7e61d9f

File tree

4 files changed

+3161
-361
lines changed

4 files changed

+3161
-361
lines changed

modulemd/tests/ModulemdTests/modulestream.py

Lines changed: 120 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -649,6 +649,7 @@ def test_xmd(self):
649649

650650
def test_upgrade_v1_to_v2(self):
651651
v1_stream = Modulemd.ModuleStreamV1.new("SuperModule", "latest")
652+
v1_stream.set_context("ctx")
652653
v1_stream.set_summary("Summary")
653654
v1_stream.set_description("Description")
654655
v1_stream.add_module_license("BSD")
@@ -657,6 +658,7 @@ def test_upgrade_v1_to_v2(self):
657658
v1_stream.add_buildtime_requirement("ModuleB", "streamY")
658659
v1_stream.add_runtime_requirement("ModuleA", "streamZ")
659660
v1_stream.add_runtime_requirement("ModuleB", "streamY")
661+
v1_stream.add_runtime_requirement("platform", "f33")
660662

661663
v2_stream = v1_stream.upgrade(Modulemd.ModuleStreamVersionEnum.TWO)
662664
self.assertIsNotNone(v2_stream)
@@ -672,6 +674,7 @@ def test_upgrade_v1_to_v2(self):
672674
data:
673675
name: SuperModule
674676
stream: \"latest\"
677+
context: ctx
675678
summary: Summary
676679
description: >-
677680
Description
@@ -685,17 +688,130 @@ def test_upgrade_v1_to_v2(self):
685688
requires:
686689
ModuleA: [streamZ]
687690
ModuleB: [streamY]
691+
platform: [f33]
688692
...
689693
""",
690694
)
691695

692696
def test_upgrade_v2_to_v3(self):
693-
# TODO: implement test
694-
pass
697+
v2_stream = Modulemd.ModuleStreamV2.new("SuperModule", "latest")
698+
v2_stream.set_context("ctx")
699+
v2_stream.set_summary("Summary")
700+
v2_stream.set_description("Description")
701+
v2_stream.add_module_license("BSD")
702+
703+
deps = Modulemd.Dependencies()
704+
deps.add_buildtime_stream("ModuleA", "streamZ")
705+
deps.add_buildtime_stream("ModuleB", "streamY")
706+
deps.add_runtime_stream("ModuleA", "streamZ")
707+
deps.add_runtime_stream("ModuleB", "streamY")
708+
deps.add_runtime_stream("platform", "f33")
709+
v2_stream.add_dependencies(deps)
710+
711+
v3_module = v2_stream.upgrade_ext(
712+
Modulemd.ModuleStreamVersionEnum.THREE
713+
)
714+
self.assertIsNotNone(v3_module)
715+
716+
# get and save current default stream mdversion
717+
default_mdv = Modulemd.get_default_stream_mdversion()
718+
719+
# create a v3 index and add all module streams to it
720+
Modulemd.set_default_stream_mdversion(
721+
Modulemd.ModuleStreamVersionEnum.THREE
722+
)
723+
idx = Modulemd.ModuleIndex.new()
724+
for stream in v3_module.get_all_streams():
725+
idx.add_module_stream(stream)
726+
727+
# restore default mdversion to avoid unexpected results from other tests
728+
Modulemd.set_default_stream_mdversion(default_mdv)
729+
730+
self.assertEquals(
731+
idx.dump_to_string(),
732+
"""---
733+
document: modulemd-stream
734+
version: 3
735+
data:
736+
name: SuperModule
737+
stream: \"latest\"
738+
context: ctx
739+
summary: Summary
740+
description: >-
741+
Description
742+
license:
743+
module:
744+
- BSD
745+
dependencies:
746+
platform: f33
747+
buildrequires:
748+
ModuleA: [streamZ]
749+
ModuleB: [streamY]
750+
requires:
751+
ModuleA: [streamZ]
752+
ModuleB: [streamY]
753+
...
754+
""",
755+
)
695756

696757
def test_upgrade_v1_to_v3(self):
697-
# TODO: implement test
698-
pass
758+
v1_stream = Modulemd.ModuleStreamV1.new("SuperModule", "latest")
759+
v1_stream.set_context("ctx")
760+
v1_stream.set_summary("Summary")
761+
v1_stream.set_description("Description")
762+
v1_stream.add_module_license("BSD")
763+
764+
v1_stream.add_buildtime_requirement("ModuleA", "streamZ")
765+
v1_stream.add_buildtime_requirement("ModuleB", "streamY")
766+
v1_stream.add_runtime_requirement("ModuleA", "streamZ")
767+
v1_stream.add_runtime_requirement("ModuleB", "streamY")
768+
v1_stream.add_runtime_requirement("platform", "f33")
769+
770+
v3_module = v1_stream.upgrade_ext(
771+
Modulemd.ModuleStreamVersionEnum.THREE
772+
)
773+
self.assertIsNotNone(v3_module)
774+
775+
# get and save current default stream mdversion
776+
default_mdv = Modulemd.get_default_stream_mdversion()
777+
778+
# create a v3 index and add all module streams to it
779+
Modulemd.set_default_stream_mdversion(
780+
Modulemd.ModuleStreamVersionEnum.THREE
781+
)
782+
idx = Modulemd.ModuleIndex.new()
783+
for stream in v3_module.get_all_streams():
784+
idx.add_module_stream(stream)
785+
786+
# restore default mdversion to avoid unexpected results from other tests
787+
Modulemd.set_default_stream_mdversion(default_mdv)
788+
789+
self.assertEquals(
790+
idx.dump_to_string(),
791+
"""---
792+
document: modulemd-stream
793+
version: 3
794+
data:
795+
name: SuperModule
796+
stream: \"latest\"
797+
context: ctx
798+
summary: Summary
799+
description: >-
800+
Description
801+
license:
802+
module:
803+
- BSD
804+
dependencies:
805+
platform: f33
806+
buildrequires:
807+
ModuleA: [streamZ]
808+
ModuleB: [streamY]
809+
requires:
810+
ModuleA: [streamZ]
811+
ModuleB: [streamY]
812+
...
813+
""",
814+
)
699815

700816
def test_v2_yaml(self):
701817
yaml = """

0 commit comments

Comments
 (0)