Exemplo n.º 1
0
	def test_parse(self):
		FILENAME = 'file.txt'
		SUBDIR = 'subdir'
		if not os.path.isdir(SUBDIR):
			os.makedirs(SUBDIR)
		self.create_and_commit_file(FILENAME)
		self.create_and_commit_file(os.path.join(SUBDIR, 'another-file.txt'))
		
		parser = GitTreeParser()
		tree_items = parser.parse('HEAD^{tree}')
		
		self.assertIn(FILENAME, tree_items)
		self.assertIn(SUBDIR, tree_items)
		
		file_item = tree_items[FILENAME]
		self.assertEqual('100644', file_item.mode)
		self.assertEqual('blob', file_item.type)
		self.assertIsSha1(file_item.sha1)
		self.assertEqual(FILENAME, file_item.name)
		
		dir_item = tree_items[SUBDIR]
		self.assertEqual('040000', dir_item.mode)
		self.assertEqual('tree', dir_item.type)
		self.assertIsSha1(dir_item.sha1)
		self.assertEqual(SUBDIR, dir_item.name)
Exemplo n.º 2
0
	def setUp(self):
		super(TreeDirItemWithRepositoryTest, self).setUp()
		self.filename, self.subdirname = self.create_and_commit_file_and_subdir()
		tree_sha1 = subprocess.check_output(['git', 'rev-parse', 'HEAD^{tree}']).strip()
		self.context_values = {TreeContextNames.SHA1:tree_sha1}
		
		parser = GitTreeParser()
		self.tree_items = parser.parse('HEAD^{tree}')
Exemplo n.º 3
0
	def get_target_object(self):
		tree_sha1 = self.get_context_value(TreeContextNames.SHA1)
		parser = GitTreeParser()
		items = parser.parse(tree_sha1)
		item = items[self.name]
		
		dir_struct = self.get_context_value(DIR_STRUCTURE_CONTEXT_NAME)
		
		if item.type == 'blob':
			target_dir = dir_struct.get_blobs_dir()
		elif item.type == 'tree':
			target_dir = dir_struct.get_trees_dir()
		
		target_object = target_dir.get_item(item.sha1)
		
		return target_object
Exemplo n.º 4
0
	def get_items_names(self):
		tree_sha1 = self.parent_dir.get_context_value(TreeContextNames.SHA1)
		parser = GitTreeParser()
		items = parser.parse(tree_sha1)
		return items.keys()