def test_get_permissions(): f = NamedTemporaryFile(delete=False) f.close() os.chmod( f.name, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH ) assert get_permissions(f.name) == 0o754 os.unlink(f.name)
def test_policy_prompt_no_directory(self, mock_prompt_yes_no): os.mkdir(self.build_dir) test_directory = os.path.join(self.build_dir, 'directory1') os.mkdir(test_directory) os.chmod(test_directory, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR) self.build_scaffold( 'test-template-2', overwrite_target_root=True, existing_policy=Scaffold.EXISTING_PROMPT ) assert self.exists('directory1', type='dir') assert get_permissions(test_directory) == 0o700 assert self.logged('Skipping existing directory')
def test_policy_overwrite_directory(self): os.mkdir(self.build_dir) test_directory = os.path.join(self.build_dir, 'directory1') os.mkdir(test_directory) os.chmod(test_directory, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR) self.build_scaffold( 'test-template-2', overwrite_target_root=True, existing_policy=Scaffold.EXISTING_OVERWRITE, compare_directory_permissions=True ) assert self.exists('directory1', type='dir') assert get_permissions(test_directory) == 0o775 assert self.logged('Updating permissions of directory')
def test_policy_overwrite_template_permissions(self): os.mkdir(self.build_dir) test_file = os.path.join(self.build_dir, 'filea') with open(test_file, 'w') as f: f.write('My name is happyman\n') os.chmod(test_file, stat.S_IRUSR | stat.S_IWUSR) self.build_scaffold( 'test-template-6', overwrite_target_root=True, existing_policy=Scaffold.EXISTING_OVERWRITE, variables={'name': 'happyman', 'age': 25} ) assert self.exists('filea', type='file') assert 'My name is happyman' in self.contents('filea') assert get_permissions(test_file) == 0o664 assert self.logged('Updating permissions of template')
def test_policy_prompt_no_template_permissions(self, mock_prompt_yes_no): os.mkdir(self.build_dir) test_file = os.path.join(self.build_dir, 'filea') with open(test_file, 'w') as f: f.write('My name is happyman\n') os.chmod(test_file, stat.S_IRUSR | stat.S_IWUSR) self.build_scaffold( 'test-template-6', overwrite_target_root=True, existing_policy=Scaffold.EXISTING_PROMPT, variables={'name': 'happyman', 'age': 25} ) assert self.exists('filea', type='file') assert 'My name is happyman' in self.contents('filea') assert get_permissions(test_file) == 0o600 assert self.logged('Skipping existing file')
def test_policy_overwrite_file_content(self): os.mkdir(self.build_dir) test_file = os.path.join(self.build_dir, 'filec.txt') with open(test_file, 'w') as f: f.write('Some random text') os.chmod(test_file, stat.S_IRUSR | stat.S_IWUSR) self.build_scaffold( 'test-template-6', overwrite_target_root=True, existing_policy=Scaffold.EXISTING_OVERWRITE, variables={'name': 'happyman', 'age': 25} ) assert self.exists('filec.txt', type='file') assert 'Hello there {{{ name }}}' in self.contents('filec.txt') assert get_permissions(test_file) == 0o664 assert self.logged('Copying and overwriting file')
def test_policy_prompt_yes_file_permissions(self, mock_prompt_yes_no): os.mkdir(self.build_dir) test_file = os.path.join(self.build_dir, 'filec.txt') with open(test_file, 'w') as f: f.write('Hello there {{{ name }}}\n') os.chmod(test_file, stat.S_IRUSR | stat.S_IWUSR) self.build_scaffold( 'test-template-6', overwrite_target_root=True, existing_policy=Scaffold.EXISTING_PROMPT, variables={'name': 'happyman', 'age': 25} ) assert self.exists('filec.txt', type='file') assert 'Hello there {{{ name }}}' in self.contents('filec.txt') assert get_permissions(test_file) == 0o664 assert self.logged('Updating permissions of file')
def test_skip_identical_directory(self): os.mkdir(self.build_dir) test_directory = os.path.join(self.build_dir, 'directory1') os.mkdir(test_directory) os.chmod( test_directory, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IWGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH ) self.build_scaffold( 'test-template-2', overwrite_target_root=True, compare_directory_permissions=True ) assert self.exists('directory1', type='dir') assert get_permissions(test_directory) == 0o775 assert self.logged('Skipping identical directory')
def test_skip_identical_template(self): os.mkdir(self.build_dir) test_file = os.path.join(self.build_dir, 'filea') with open(test_file, 'w') as f: f.write('My name is happyman\n') os.chmod( test_file, stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IWGRP | stat.S_IROTH ) self.build_scaffold( 'test-template-6', overwrite_target_root=True, variables={'name': 'happyman', 'age': 25} ) assert self.exists('filea') assert get_permissions(test_file) == 0o664 assert self.logged('Skipping identical file')