Пример #1
0
	def setup(self):
		self.old_pwd = env['PWD']
		self.temp_dir = tempfile.mkdtemp()
		os.chdir(self.temp_dir)
		self.skel = SkelPy()
Пример #2
0
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')