@@ -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):
672674data:
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