1#!/usr/bin/env python 2import mozunit 3import os 4from unittest import mock 5import pytest 6 7from mozperftest.test.browsertime.visualtools import xvfb, get_dependencies 8from mozperftest.utils import temporary_env 9 10 11@mock.patch( 12 "mozperftest.test.browsertime.visualtools.find_executable", new=lambda name: "Xvfb" 13) 14def test_xvfb(*mocked): 15 with temporary_env(DISPLAY="ME"): 16 with mock.patch("subprocess.Popen") as mocked, xvfb(): 17 mocked.assert_called() 18 assert os.environ["DISPLAY"] == "ME" 19 20 21@mock.patch( 22 "mozperftest.test.browsertime.visualtools.find_executable", new=lambda name: "Xvfb" 23) 24def test_xvfb_env(*mocked): 25 with temporary_env(DISPLAY=None): 26 with mock.patch("subprocess.Popen") as mocked, xvfb(): 27 mocked.assert_called() 28 assert "DISPLAY" not in os.environ 29 30 31@mock.patch( 32 "mozperftest.test.browsertime.visualtools.find_executable", new=lambda name: None 33) 34def test_xvfb_none(*mocked): 35 with pytest.raises(FileNotFoundError), xvfb(): 36 pass 37 38 39def test_get_dependencies(): 40 # Making sure we get a list on all supported platforms. 41 # If we miss one, this raises a KeyError. 42 get_dependencies() 43 44 45if __name__ == "__main__": 46 mozunit.main() 47