def setUp(self): super().setUp() temp_cwd_fixture = fixture_setup.TempCWD() self.useFixture(temp_cwd_fixture) self.path = temp_cwd_fixture.path self.useFixture(fixture_setup.TempXDG(self.path)) self.fake_terminal = fixture_setup.FakeTerminal() self.useFixture(self.fake_terminal) # Some tests will directly or indirectly change the plugindir, which # is a module variable. Make sure that it is returned to the original # value when a test ends. self.addCleanup(common.set_plugindir, common.get_plugindir()) self.addCleanup(common.set_schemadir, common.get_schemadir()) self.addCleanup(common.set_librariesdir, common.get_librariesdir()) self.addCleanup(common.set_tourdir, common.get_tourdir()) self.addCleanup(common.reset_env) common.set_schemadir(os.path.join(__file__, '..', '..', '..', 'schema')) self.useFixture(fixtures.FakeLogger(level=logging.ERROR)) patcher = mock.patch('multiprocessing.cpu_count') self.cpu_count = patcher.start() self.cpu_count.return_value = 2 self.addCleanup(patcher.stop) patcher = mock.patch('snapcraft.internal.indicators.ProgressBar', new=SilentProgressBar) patcher.start() self.addCleanup(patcher.stop) # These are what we expect by default self.snap_dir = os.path.join(os.getcwd(), 'prime') self.stage_dir = os.path.join(os.getcwd(), 'stage') self.parts_dir = os.path.join(os.getcwd(), 'parts') self.local_plugins_dir = os.path.join(self.parts_dir, 'plugins')
def setUp(self): super().setUp() temp_cwd_fixture = fixture_setup.TempCWD() self.useFixture(temp_cwd_fixture) self.path = temp_cwd_fixture.path self.useFixture(fixture_setup.TempConfig(self.path)) # Some tests will directly or indirectly change the plugindir, which # is a module variable. Make sure that it is returned to the original # value when a test ends. self.addCleanup(common.set_plugindir, common.get_plugindir()) self.addCleanup(common.set_schemadir, common.get_schemadir()) self.addCleanup(common.set_librariesdir, common.get_librariesdir()) self.addCleanup(common.set_tourdir, common.get_tourdir()) self.addCleanup(common.reset_env) common.set_schemadir(os.path.join(__file__, '..', '..', '..', 'schema')) self.useFixture(fixtures.FakeLogger(level=logging.ERROR)) patcher = mock.patch('multiprocessing.cpu_count') self.cpu_count = patcher.start() self.cpu_count.return_value = 2 self.addCleanup(patcher.stop) # These are what we expect by default self.snap_dir = os.path.join(os.getcwd(), 'prime') self.stage_dir = os.path.join(os.getcwd(), 'stage') self.parts_dir = os.path.join(os.getcwd(), 'parts') self.local_plugins_dir = os.path.join(self.parts_dir, 'plugins')
def setUp(self): super().setUp() temp_cwd_fixture = fixture_setup.TempCWD() self.useFixture(temp_cwd_fixture) self.path = temp_cwd_fixture.path # Use a separate path for XDG dirs, or changes there may be detected as # source changes. self.xdg_path = self.useFixture(fixtures.TempDir()).path self.useFixture(fixture_setup.TempXDG(self.xdg_path)) self.fake_terminal = fixture_setup.FakeTerminal() self.useFixture(self.fake_terminal) self.useFixture(fixture_setup.SilentSnapProgress()) # Some tests will directly or indirectly change the plugindir, which # is a module variable. Make sure that it is returned to the original # value when a test ends. self.addCleanup(common.set_plugindir, common.get_plugindir()) self.addCleanup(common.set_schemadir, common.get_schemadir()) self.addCleanup(common.set_librariesdir, common.get_librariesdir()) self.addCleanup(common.reset_env) common.set_schemadir(os.path.join(get_snapcraft_path(), "schema")) self.fake_logger = fixtures.FakeLogger(level=logging.ERROR) self.useFixture(self.fake_logger) patcher = mock.patch("multiprocessing.cpu_count") self.cpu_count = patcher.start() self.cpu_count.return_value = 2 self.addCleanup(patcher.stop) patcher = mock.patch( "snapcraft.internal.indicators.ProgressBar", new=SilentProgressBar ) patcher.start() self.addCleanup(patcher.stop) # These are what we expect by default self.snap_dir = os.path.join(os.getcwd(), "snap") self.prime_dir = os.path.join(os.getcwd(), "prime") self.stage_dir = os.path.join(os.getcwd(), "stage") self.parts_dir = os.path.join(os.getcwd(), "parts") self.local_plugins_dir = os.path.join(self.snap_dir, "plugins") # Avoid installing patchelf in the tests self.useFixture(fixtures.EnvironmentVariable("SNAPCRAFT_NO_PATCHELF", "1")) # Disable Sentry reporting for tests, otherwise they'll hang waiting # for input self.useFixture( fixtures.EnvironmentVariable("SNAPCRAFT_ENABLE_SENTRY", "false") ) machine = os.environ.get("SNAPCRAFT_TEST_MOCK_MACHINE", None) self.base_environment = fixture_setup.FakeBaseEnvironment(machine=machine) self.useFixture(self.base_environment) # Make sure "SNAPCRAFT_ENABLE_DEVELOPER_DEBUG" is reset between tests self.useFixture( fixtures.EnvironmentVariable("SNAPCRAFT_ENABLE_DEVELOPER_DEBUG") ) self.useFixture(fixture_setup.FakeSnapcraftctl())
def setUp(self): super().setUp() temp_cwd_fixture = fixture_setup.TempCWD() self.useFixture(temp_cwd_fixture) self.path = temp_cwd_fixture.path self.useFixture(fixture_setup.TempXDG(self.path)) self.fake_terminal = fixture_setup.FakeTerminal() self.useFixture(self.fake_terminal) self.useFixture(fixture_setup.SilentSnapProgress()) # Some tests will directly or indirectly change the plugindir, which # is a module variable. Make sure that it is returned to the original # value when a test ends. self.addCleanup(common.set_plugindir, common.get_plugindir()) self.addCleanup(common.set_schemadir, common.get_schemadir()) self.addCleanup(common.set_librariesdir, common.get_librariesdir()) self.addCleanup(common.reset_env) common.set_schemadir(os.path.join(get_snapcraft_path(), 'schema')) self.fake_logger = fixtures.FakeLogger(level=logging.ERROR) self.useFixture(self.fake_logger) patcher = mock.patch('multiprocessing.cpu_count') self.cpu_count = patcher.start() self.cpu_count.return_value = 2 self.addCleanup(patcher.stop) patcher = mock.patch('snapcraft.internal.indicators.ProgressBar', new=SilentProgressBar) patcher.start() self.addCleanup(patcher.stop) # These are what we expect by default self.snap_dir = os.path.join(os.getcwd(), 'snap') self.prime_dir = os.path.join(os.getcwd(), 'prime') self.stage_dir = os.path.join(os.getcwd(), 'stage') self.parts_dir = os.path.join(os.getcwd(), 'parts') self.local_plugins_dir = os.path.join(self.snap_dir, 'plugins') # Avoid installing patchelf in the tests self.useFixture( fixtures.EnvironmentVariable('SNAPCRAFT_NO_PATCHELF', '1')) # Disable Sentry reporting for tests, otherwise they'll hang waiting # for input self.useFixture( fixtures.EnvironmentVariable('SNAPCRAFT_ENABLE_SENTRY', 'false')) machine = os.environ.get('SNAPCRAFT_TEST_MOCK_MACHINE', None) self.base_environment = fixture_setup.FakeBaseEnvironment( machine=machine) self.useFixture(self.base_environment) # Make sure SNAPCRAFT_DEBUG is reset between tests self.useFixture(fixtures.EnvironmentVariable('SNAPCRAFT_DEBUG')) self.useFixture(fixture_setup.FakeSnapcraftctl())
def _get_system_libs(): global _libraries if _libraries: return _libraries release = platform.linux_distribution()[1] lib_path = os.path.join(common.get_librariesdir(), release) if not os.path.exists(lib_path): logger.debug('No libraries to exclude from this release') with open(lib_path) as fn: _libraries = frozenset(fn.read().split()) return _libraries
def setUp(self): super().setUp() temp_cwd_fixture = fixture_setup.TempCWD() self.useFixture(temp_cwd_fixture) self.path = temp_cwd_fixture.path self.useFixture(fixture_setup.TempXDG(self.path)) self.fake_terminal = fixture_setup.FakeTerminal() self.useFixture(self.fake_terminal) self.useFixture(fixture_setup.SilentSnapProgress()) # Some tests will directly or indirectly change the plugindir, which # is a module variable. Make sure that it is returned to the original # value when a test ends. self.addCleanup(common.set_plugindir, common.get_plugindir()) self.addCleanup(common.set_schemadir, common.get_schemadir()) self.addCleanup(common.set_librariesdir, common.get_librariesdir()) self.addCleanup(common.reset_env) common.set_schemadir(os.path.join(__file__, '..', '..', '..', 'schema')) self.fake_logger = fixtures.FakeLogger(level=logging.ERROR) self.useFixture(self.fake_logger) patcher = mock.patch('multiprocessing.cpu_count') self.cpu_count = patcher.start() self.cpu_count.return_value = 2 self.addCleanup(patcher.stop) patcher = mock.patch('snapcraft.internal.indicators.ProgressBar', new=SilentProgressBar) patcher.start() self.addCleanup(patcher.stop) # These are what we expect by default self.snap_dir = os.path.join(os.getcwd(), 'snap') self.prime_dir = os.path.join(os.getcwd(), 'prime') self.stage_dir = os.path.join(os.getcwd(), 'stage') self.parts_dir = os.path.join(os.getcwd(), 'parts') self.local_plugins_dir = os.path.join(self.snap_dir, 'plugins') machine = os.environ.get('SNAPCRAFT_TEST_MOCK_MACHINE', None) if machine: patcher = mock.patch('platform.machine') self.mock_machine = patcher.start() self.mock_machine.return_value = machine self.addCleanup(patcher.stop) # Ensure logging is set back to the default self.addCleanup(log.configure)
def _get_system_libs(): global _libraries if _libraries: return _libraries release = common.get_os_release_info()['VERSION_ID'] lib_path = os.path.join(common.get_librariesdir(), release) if not os.path.exists(lib_path): logger.debug('No libraries to exclude from this release') # Always exclude libc.so.6 return frozenset(['libc.so.6']) with open(lib_path) as fn: _libraries = frozenset(fn.read().split()) return _libraries
def _get_system_libs() -> FrozenSet[str]: global _libraries if _libraries: return _libraries lib_path = None release = os_release.OsRelease() with contextlib.suppress(errors.OsReleaseVersionIdError): lib_path = os.path.join( common.get_librariesdir(), release.version_id()) if not lib_path or not os.path.exists(lib_path): logger.debug('Only excluding libc libraries from the release') libc6_libs = [os.path.basename(l) for l in repo.Repo.get_package_libraries('libc6')] return frozenset(libc6_libs) with open(lib_path) as fn: _libraries = frozenset(fn.read().split()) return _libraries
def _get_system_libs() -> FrozenSet[str]: global _libraries if _libraries: # type: ignore return _libraries # type: ignore lib_path = None release = os_release.OsRelease() with contextlib.suppress(errors.OsReleaseVersionIdError): lib_path = os.path.join(common.get_librariesdir(), release.version_id()) if not lib_path or not os.path.exists(lib_path): logger.debug("Only excluding libc libraries from the release") libc6_libs = [ os.path.basename(l) for l in repo.Repo.get_package_libraries("libc6") ] _libraries = frozenset(libc6_libs) else: with open(lib_path) as fn: _libraries = frozenset(fn.read().split()) return _libraries