@@ -1878,6 +1878,58 @@ def _which_side_effect(path):
18781878 assert ret ["virtual_subtype" ] == "Podman"
18791879
18801880
1881+ @pytest .mark .skip_on_windows
1882+ def test_docker_virtual_with_systemd_detect_virt ():
1883+ """
1884+ Test if virtual grains are parsed correctly in Docker using systemd-detect-virt.
1885+ """
1886+
1887+ def _which_side_effect (path ):
1888+ if path == "systemd-detect-virt" :
1889+ return "/usr/bin/systemd-detect-virt"
1890+ return None
1891+
1892+ with patch .object (
1893+ salt .utils .platform , "is_windows" , MagicMock (return_value = False )
1894+ ), patch .object (
1895+ salt .utils .path ,
1896+ "which" ,
1897+ MagicMock (return_value = True , side_effect = _which_side_effect ),
1898+ ), patch .dict (
1899+ core .__salt__ ,
1900+ {
1901+ "cmd.run_all" : MagicMock (
1902+ return_value = {"pid" : 78 , "retcode" : 0 , "stderr" : "" , "stdout" : "docker" }
1903+ )
1904+ },
1905+ ):
1906+ osdata = {"kernel" : "test" }
1907+ ret = core ._virtual (osdata )
1908+ assert ret ["virtual" ] == "container"
1909+ assert ret ["virtual_subtype" ] == "Docker"
1910+
1911+
1912+ @pytest .mark .skip_on_windows
1913+ def test_docker_virtual_with_virt_what ():
1914+ """
1915+ Test if virtual grains are parsed correctly in Docker using virt-what.
1916+ """
1917+ with patch .object (
1918+ salt .utils .platform , "is_windows" , MagicMock (return_value = False )
1919+ ), patch .object (salt .utils .path , "which" , MagicMock (return_value = True )), patch .dict (
1920+ core .__salt__ ,
1921+ {
1922+ "cmd.run_all" : MagicMock (
1923+ return_value = {"pid" : 78 , "retcode" : 0 , "stderr" : "" , "stdout" : "docker" }
1924+ )
1925+ },
1926+ ):
1927+ osdata = {"kernel" : "test" }
1928+ ret = core ._virtual (osdata )
1929+ assert ret ["virtual" ] == "container"
1930+ assert ret ["virtual_subtype" ] == "Docker"
1931+
1932+
18811933@pytest .mark .skip_on_windows
18821934def test_container_inside_virtual_machine ():
18831935 """
0 commit comments