1010cache, which causes:
1111 Error: Problems in request: missing groups or modules: mariadb:cl-MariaDB106
1212"""
13- import pytest
1413
15- from leapp import reporting
1614from leapp .libraries .actor .clmysql_cloudlinux import clmysql_process
1715from leapp .libraries .actor .clmysqlrepositorysetup import MySqlRepositorySetupLibrary
18- from leapp .libraries .common .clmysql import ClMysqlTypeResult , ClMysqlTypeStatus
19- from leapp .libraries .common .testutils import create_report_mocked , logger_mocked , produce_mocked
20- from leapp .libraries .stdlib import api
21- from leapp .models import CustomTargetRepository , CustomTargetRepositoryFile , RepositoryData , RepositoryFile
22-
23-
24- _MARIADB106_META_BASEURL = (
25- "http://repo.cloudlinux.com/other/cl$releasever/mysqlmeta/cl-mariadb-10.6/x86_64/"
26- )
27- _MYSQLCLIENT_BASEURL = (
28- "http://repo.cloudlinux.com/other/cl$releasever/mysqlmeta/mysqlclient/x86_64/"
29- )
30-
31-
32- def _make_cl_mysql_repofile (cl_mysql_meta_enabled = True , mysqlclient_enabled = False ):
33- """Return a RepositoryFile that mimics a Governor-written cl-mysql.repo."""
34- return RepositoryFile (
35- file = "cl-mysql.repo" ,
36- data = [
37- RepositoryData (
38- repoid = "cl-mysql-meta" ,
39- name = "cl-mysql" ,
40- baseurl = _MARIADB106_META_BASEURL ,
41- enabled = cl_mysql_meta_enabled ,
42- ),
43- RepositoryData (
44- repoid = "mysqclient" ,
45- name = "mysqlclient" ,
46- baseurl = _MYSQLCLIENT_BASEURL ,
47- enabled = mysqlclient_enabled ,
48- ),
49- ],
50- )
51-
52-
53- def _patch_env (monkeypatch , clmysql_type = "mariadb106" , target_major = "9" ):
54- """Patch all external dependencies of clmysql_cloudlinux."""
55- monkeypatch .setattr (
56- "leapp.libraries.actor.clmysql_cloudlinux.get_clmysql_type" ,
57- lambda : ClMysqlTypeResult (
58- status = ClMysqlTypeStatus .OK ,
59- governor_type = clmysql_type ,
60- pkg_type = clmysql_type ,
61- ),
62- )
63- monkeypatch .setattr (
64- "leapp.libraries.actor.clmysql_cloudlinux.get_target_major_version" ,
65- lambda : target_major ,
66- )
67- monkeypatch .setattr (
68- "leapp.libraries.actor.clmysql_cloudlinux.create_leapp_repofile_copy" ,
69- lambda * a , ** kw : "/tmp/cl-mysql-leapp.repo" ,
70- )
71- monkeypatch .setattr (api , "produce" , produce_mocked ())
72- monkeypatch .setattr (api , "current_logger" , logger_mocked ())
73- monkeypatch .setattr (reporting , "create_report" , create_report_mocked ())
7416
7517
7618class TestDisabledReposForceEnabled :
@@ -79,96 +21,74 @@ class TestDisabledReposForceEnabled:
7921 target userspace for the module stream to be resolvable.
8022 """
8123
82- def test_both_repos_disabled_still_in_target (self , monkeypatch ):
24+ def test_both_repos_disabled_still_in_target (self , patch_env , make_cl_mysql_repofile ):
8325 """Disabled cl-mysql-meta and mysqclient repos must both be force-enabled."""
84- _patch_env ( monkeypatch )
26+ patch_env ( )
8527
8628 lib = MySqlRepositorySetupLibrary ()
87- clmysql_process (lib , "cl-mysql" , _make_cl_mysql_repofile (
88- cl_mysql_meta_enabled = False , mysqlclient_enabled = False
89- ))
29+ clmysql_process (
30+ lib ,
31+ "cl-mysql" ,
32+ make_cl_mysql_repofile (cl_mysql_meta_enabled = False , mysqlclient_enabled = False ),
33+ )
9034
9135 repoids = {msg .repoid for msg in lib .custom_repo_msgs }
9236 assert "cl-mysql-meta-9" in repoids
9337 assert "mysqclient-9" in repoids
9438
95- def test_target_repos_enabled_true (self , monkeypatch ):
39+ def test_target_repos_enabled_true (self , patch_env , make_cl_mysql_repofile ):
9640 """Target repo messages must have enabled=True regardless of source state."""
97- _patch_env ( monkeypatch )
41+ patch_env ( )
9842
9943 lib = MySqlRepositorySetupLibrary ()
100- clmysql_process (lib , "cl-mysql" , _make_cl_mysql_repofile (
101- cl_mysql_meta_enabled = False , mysqlclient_enabled = False
102- ))
44+ clmysql_process (
45+ lib ,
46+ "cl-mysql" ,
47+ make_cl_mysql_repofile (cl_mysql_meta_enabled = False , mysqlclient_enabled = False ),
48+ )
10349
10450 for msg in lib .custom_repo_msgs :
10551 assert msg .enabled , "target repo {} must be enabled=True" .format (msg .repoid )
10652
107- def test_cloudlinux_type_always_registered (self , monkeypatch ):
53+ def test_cloudlinux_type_always_registered (self , patch_env , make_cl_mysql_repofile ):
10854 """'cloudlinux' must be added to mysql_types even when all repos are disabled."""
109- _patch_env ( monkeypatch )
55+ patch_env ( )
11056
11157 lib = MySqlRepositorySetupLibrary ()
112- clmysql_process (lib , "cl-mysql" , _make_cl_mysql_repofile (
113- cl_mysql_meta_enabled = False , mysqlclient_enabled = False
114- ))
58+ clmysql_process (
59+ lib ,
60+ "cl-mysql" ,
61+ make_cl_mysql_repofile (cl_mysql_meta_enabled = False , mysqlclient_enabled = False ),
62+ )
11563
11664 assert "cloudlinux" in lib .mysql_types
11765
118- def test_releasever_substituted_in_target_baseurl (self , monkeypatch ):
66+ def test_releasever_substituted_in_target_baseurl (self , patch_env , make_cl_mysql_repofile ):
11967 """Target repo baseurls must have $releasever replaced with the target major version."""
120- _patch_env ( monkeypatch , target_major = "9" )
68+ patch_env ( target_major = "9" )
12169
12270 lib = MySqlRepositorySetupLibrary ()
123- clmysql_process (lib , "cl-mysql" , _make_cl_mysql_repofile (
124- cl_mysql_meta_enabled = False , mysqlclient_enabled = False
125- ))
71+ clmysql_process (
72+ lib ,
73+ "cl-mysql" ,
74+ make_cl_mysql_repofile (cl_mysql_meta_enabled = False , mysqlclient_enabled = False ),
75+ )
12676
12777 for msg in lib .custom_repo_msgs :
12878 assert "$releasever" not in msg .baseurl
12979 assert "/cl9/" in msg .baseurl
13080
131- def test_enabled_repos_also_pass_through (self , monkeypatch ):
81+ def test_enabled_repos_also_pass_through (self , patch_env , make_cl_mysql_repofile ):
13282 """Normal case: enabled cl-mysql-meta still appears in target repos."""
133- _patch_env ( monkeypatch )
83+ patch_env ( )
13484
13585 lib = MySqlRepositorySetupLibrary ()
136- clmysql_process (lib , "cl-mysql" , _make_cl_mysql_repofile (
137- cl_mysql_meta_enabled = True , mysqlclient_enabled = False
138- ))
86+ clmysql_process (
87+ lib ,
88+ "cl-mysql" ,
89+ make_cl_mysql_repofile (cl_mysql_meta_enabled = True , mysqlclient_enabled = False ),
90+ )
13991
14092 repoids = {msg .repoid for msg in lib .custom_repo_msgs }
14193 assert "cl-mysql-meta-9" in repoids
14294 assert "cloudlinux" in lib .mysql_types
143-
144-
145- class TestMismatchInhibitor :
146- """Governor/RPM type mismatch must create an inhibitor and skip repo setup."""
147-
148- def test_mismatch_inhibits_and_adds_no_repos (self , monkeypatch ):
149- monkeypatch .setattr (
150- "leapp.libraries.actor.clmysql_cloudlinux.get_clmysql_type" ,
151- lambda : ClMysqlTypeResult (
152- status = ClMysqlTypeStatus .MISMATCH ,
153- governor_type = "mariadb106" ,
154- pkg_type = "mysql80" ,
155- ),
156- )
157- monkeypatch .setattr (
158- "leapp.libraries.actor.clmysql_cloudlinux.get_target_major_version" ,
159- lambda : "9" ,
160- )
161- monkeypatch .setattr (
162- "leapp.libraries.actor.clmysql_cloudlinux.create_leapp_repofile_copy" ,
163- lambda * a , ** kw : "/tmp/cl-mysql-leapp.repo" ,
164- )
165- monkeypatch .setattr (api , "produce" , produce_mocked ())
166- monkeypatch .setattr (api , "current_logger" , logger_mocked ())
167- monkeypatch .setattr (reporting , "create_report" , create_report_mocked ())
168-
169- lib = MySqlRepositorySetupLibrary ()
170- clmysql_process (lib , "cl-mysql" , _make_cl_mysql_repofile ())
171-
172- assert "cloudlinux" not in lib .mysql_types
173- assert lib .custom_repo_msgs == []
174- assert reporting .create_report .called == 1
0 commit comments