def test_generate_hook_wrappers(self): # Set up the prime directory to contain a few hooks in snap/hooks snap_hooks_dir = os.path.join(self.prime_dir, 'snap', 'hooks') hook1_path = os.path.join(snap_hooks_dir, 'test-hook1') hook2_path = os.path.join(snap_hooks_dir, 'test-hook2') for path in (hook1_path, hook2_path): _create_file(path, executable=True) # Now generate hook wrappers, and verify that they're correct self.generate_meta_yaml() for hook in ('test-hook1', 'test-hook2'): hook_path = os.path.join(self.hooks_dir, hook) self.assertThat(hook_path, FileExists()) self.assertThat(hook_path, tests.IsExecutable()) # The hook in meta/hooks should exec the one in snap/hooks, as it's # a wrapper generated by snapcraft. self.assertThat( hook_path, FileContains(matcher=Contains( 'exec "$SNAP/snap/hooks/{}"'.format(hook))))
def test_download_makes_executable(self, mock_download): self.source.file = os.path.join('destination', 'file') self.source.download() self.assertThat(self.source.file, FileExists()) self.assertThat(self.source.file, tests.IsExecutable())