def test_100_storage_repodata(self): # a simple test to check that repodata is available. util.extract_archive(self.testdir) repodata = DummyItem(join(self.testdir, 'repodata')) storage = GitStorage(repodata) pathinfo = storage.pathinfo('1') self.assertEqual(pathinfo, { 'basename': '1', 'date': '', 'size': 0, 'type': 'folder', }) pathinfo = storage.pathinfo('1/f1') self.assertEqual(pathinfo, { 'date': '2013-07-22 16:40:20', 'basename': 'f1', 'type': 'file', 'size': 5 }) storage.datefmt = 'rfc3339.local' pathinfo = storage.pathinfo('1/f1') self.assertEqual(pathinfo, { 'date': '2013-07-22T16:40:20+1200', 'basename': 'f1', 'type': 'file', 'size': 5 })
def test_011_storage_empty_basic(self): emptydir = join(self.testdir, 'empty') init_repository(join(emptydir, '.git'), bare=True) item = DummyItem(emptydir) storage = GitStorage(item) self.assertEqual(storage.files(), []) pathinfo = storage.pathinfo('') self.assertEqual(pathinfo, { 'basename': '', 'date': '', 'size': 0, 'type': 'folder', }) result = list(storage.listdir('')) self.assertEqual(result, []) result = storage.log(None, 1) self.assertEqual(result, []) self.assertEqual(storage.shortrev, None) self.assertEqual(storage.rev, None)
def test_900_storage_branches(self): # a simple test to check that repodata is available. util.extract_archive(self.testdir) repodata = DummyItem(join(self.testdir, 'repodata')) storage = GitStorage(repodata) branches = storage.branches() self.assertEqual(branches, ( ('master', 'eab05fccc349fbeb57ade09a197ddc72cd9e4388'), ))
def test_901_storage_tags(self): # a simple test to check that repodata is available. util.extract_archive(self.testdir) repodata = DummyItem(join(self.testdir, 'repodata')) storage = GitStorage(repodata) storage.repo.create_tag( 'dummy', util.ARCHIVE_REVS[1], GIT_OBJ_COMMIT, Signature('User', '*****@*****.**', 0, 0), 'dummy tag', ) branches = storage.tags() self.assertEqual(branches, ( ('dummy', '5c3f6bbf4aaf429ea5cb0850eae5697551397f7d'), ))
def test_110_storage_subrepo_alt_revision(self): # a simple test to check that repodata is available. util.extract_archive(self.testdir) repodata = DummyItem(join(self.testdir, 'repodata')) storage = GitStorage(repodata) # checkout a specific rev storage.checkout(util.ARCHIVE_REVS[1]) pathinfo = storage.pathinfo('ext/import1') self.assertEqual(pathinfo, { 'basename': 'import1', 'date': '', 'size': 0, 'type': 'subrepo', 'obj': { '': '_subrepo', 'location': 'http://models.example.com/w/import1', 'path': '', 'rev': '00cf337ef94f882f2585684c1c5c601285312f85', }, })
def test_011_storage_empty_failures(self): emptydir = join(self.testdir, 'empty') init_repository(join(emptydir, '.git'), bare=True) item = DummyItem(emptydir) storage = GitStorage(item) pathinfo = storage.pathinfo('') with self.assertRaises(RevisionNotFoundError): storage.checkout('nowhere') pathinfo = storage.pathinfo('') self.assertEqual(pathinfo, { 'basename': '', 'date': '', 'size': 0, 'type': 'folder', }) with self.assertRaises(PathNotFoundError): storage.listdir('nowhere') with self.assertRaises(RevisionNotFoundError): storage.log('nosuchrev', 1)
def test_110_storage_subrepo_default(self): # a simple test to check that repodata is available. util.extract_archive(self.testdir) repodata = DummyItem(join(self.testdir, 'repodata')) storage = GitStorage(repodata) pathinfo = storage.pathinfo('ext/import1') self.assertEqual(pathinfo, { 'basename': 'import1', 'date': '', 'size': 0, 'type': 'subrepo', 'obj': { '': '_subrepo', 'location': 'http://models.example.com/w/import1', 'path': '', 'rev': '466b6256bd9a1588256558a8e644f04b13bc04f3', }, }) with self.assertRaises(PathNotFileError): storage.file('ext/import1') with self.assertRaises(PathNotDirError): storage.listdir('ext/import1')
def test_010_storage_base(self): item = DummyItem(self.testdir) revs, fulllist = util.create_demo_git_repo(self.testdir) storage = GitStorage(item) result = storage.files() self.assertEqual(result, fulllist) entries = storage.listdir('') self.assertEqual(entries, ['file1', 'file2', 'file3', 'nested']) self.assertEqual(storage.rev, revs[-1]) self.assertEqual(storage.shortrev, revs[-1][:12]) info = storage.pathinfo('nested') self.assertEqual(info['size'], 0) self.assertEqual(info['type'], 'folder') entries = storage.listdir('nested') self.assertEqual(entries, ['deep']) info = storage.pathinfo('file1') self.assertEqual(info['size'], 38) self.assertEqual(info['type'], 'file') with self.assertRaises(PathNotFoundError): storage.pathinfo('nosuchpath') with self.assertRaises(PathNotFoundError): storage.listdir('nosuchpath') with self.assertRaises(PathNotDirError): storage.listdir('file1') with self.assertRaises(PathNotFileError): storage.file('nested') with self.assertRaises(PathNotFoundError): storage.pathinfo('nested/deep/nosuchpath') with self.assertRaises(PathNotFoundError): storage.listdir('nested/deep/nosuchpath') with self.assertRaises(PathNotDirError): storage.listdir('nested/deep/dir/file') with self.assertRaises(PathNotFileError): storage.file('nested/deep/dir') logs = storage.log('HEAD', 10) self.assertEqual(len(logs), 4) self.assertEqual(logs[0]['author'], u'user3') self.assertEqual(logs[1]['author'], u'user3') self.assertEqual(logs[2]['author'], u'user2') self.assertEqual(logs[3]['author'], u'user1') self.assertTrue(isinstance(logs[0]['date'], str)) logs = storage.log(None, 2) self.assertEqual(len(logs), 2) storage.checkout(revs[0]) self.assertEqual(storage.rev, revs[0]) with self.assertRaises(PathNotFoundError): # normally won't be traversed, but for completeness, test # that getting an object with a type that is not expected # should fail. storage._get_obj('file1', DummyItem)