def setup(self): self.old_pwd = env['PWD'] self.temp_dir = tempfile.mkdtemp() os.chdir(self.temp_dir) self.skel = SkelPy()
class Test_SkelPy(object): def setup(self): self.old_pwd = env['PWD'] self.temp_dir = tempfile.mkdtemp() os.chdir(self.temp_dir) self.skel = SkelPy() def teardown(self): os.chdir(self.old_pwd) shutil.rmtree(self.temp_dir) def test_template_path_is_file(self): """ checks that a skelpy init dont override a file """ with open('template1', 'w') as f: f.write('') assert os.path.isfile('template1') self.skel.init('template1') assert os.path.isfile('template1') def test_init_once(self): """ tests that the tool creates the template dir """ self.skel.init('template1') skel_path = os.path.join(self.temp_dir, 'template1', '.skelpy') assert os.path.isdir(skel_path) def test_init_twice(self): """ tests that 2nd init call dont overrides the template dir """ template_path = os.path.join(self.temp_dir, 'template1', '.skelpy') self.skel.init('template1') mod_time1 = os.path.getmtime(template_path) sleep(0.001) self.skel.init() mod_time2 = os.path.getmtime(template_path) assert mod_time1 == mod_time2 def create_sample_template(self, name): os.chdir(name) for path in 'a','b','c': os.mkdir(path) with open('file_%s' % path, 'w+') as f: f.write('0123456789abcdef') os.chdir(path) os.chdir(self.temp_dir) def check_sample_template_output(self, name): os.chdir(name) for path in 'a','b','c': files = os.listdir('.') assert set(files) == set([path, "file_"+path]), files assert os.path.isdir(path) assert os.path.isfile("file_%s" % path) f = open('file_%s' % path, 'r') assert '0123456789abcdef' == f.read(), f os.chdir(path) def test_create_copies_files(self): """ checks if create copies directories and files """ name='template1' self.skel.init(name) self.create_sample_template(name) self.skel.create(name, 'proj1') assert os.path.isdir('proj1') self.check_sample_template_output('proj1') def test_create_works_with_seperator_after_source_string(self): """ checks if create works with seperator at the end of the source string """ name='template1' os.mkdir(name) self.skel.init('template1') self.create_sample_template(name) with open(os.path.join(name, 'test'), 'w+') as f: f.write('0123456789abcdef') self.skel.create('%s/'%(name), 'proj1') assert os.path.isdir('proj1') assert os.path.isfile(os.path.join('proj1', 'test')) def test_create_works_with_seperator_after_target_string(self): """ checks if create works with seperator at the end of the target string """ name='template1' os.mkdir(name) self.skel.init('template1') self.create_sample_template(name) with open(os.path.join(name, '%project%'), 'w+') as f: f.write('0123456789abcdef') self.skel.create(name, 'proj1/') assert os.path.isdir('proj1') assert os.path.isfile(os.path.join('proj1', 'proj1')) def test_create_does_use_empty_directory_as_target(self): """ checks that create can use a empty folder as target """ name='template1' self.skel.init(name) self.create_sample_template(name) #unclean_folder = os.path.join('proj1', 'test') os.mkdir('proj1') #os.mkdir(unclean_folder) exception = None try: self.skel.create(name, 'proj1') except Exception, err: exception = True assert False, err assert exception == None self.check_sample_template_output('proj1')