示例#1
0
文件: test_deptree.py 项目: mjs/juju
 def test_consolidate_deps(self):
     expected_deps = {
         'github/foo': Dependency('github/foo', 'git', 'rev123', None),
         'github/bar': Dependency('github/bar', 'git', 'rev456', None),
         'github/baz': Dependency('github/baz', 'git', 'rev789', None),
         'github/qux': Dependency('github/qux', 'git', 'revdef', None),
         'lp/qoh': Dependency('lp/qoh', 'bzr', 'rev789', '3')
     }
     conflict_dep = Dependency('github/baz', 'git', 'revabc', None)
     with temp_dir() as base_dir:
         a_dep_file = '%s/a.tsv' % base_dir
         with open(a_dep_file, 'w') as f:
             f.write(expected_deps['github/foo'].to_line())
             f.write(expected_deps['github/bar'].to_line())
             f.write(expected_deps['github/baz'].to_line())
         b_dep_file = '%s/b.tsv' % base_dir
         with open(b_dep_file, 'w') as f:
             f.write(expected_deps['github/foo'].to_line())
             f.write(conflict_dep.to_line())
             f.write(expected_deps['github/qux'].to_line())
             f.write(expected_deps['lp/qoh'].to_line())
         dep_file = DependencyFile([a_dep_file, b_dep_file])
         deps, conflicts = dep_file.consolidate_deps()
     self.assertEqual([(b_dep_file, conflict_dep)], conflicts)
     self.assertEqual(expected_deps, deps)
示例#2
0
 def test_init(self):
     dep = Dependency('github/foo', 'git', 'rev123')
     self.assertEqual('github/foo', dep.package)
     self.assertEqual('git', dep.vcs)
     self.assertEqual('rev123', dep.revid)
     self.assertIs(None, dep.revno)
     # Revno is None when an empty string is passed
     dep = Dependency('github/foo', 'git', 'rev123', revno='')
     self.assertIs(None, dep.revno)
示例#3
0
 def test_from_string(self):
     dep = Dependency.from_string('foo/bar\tgit\t123abc0\t', '\t')
     self.assertEqual('foo/bar', dep.package)
     self.assertEqual('git', dep.vcs)
     self.assertEqual('123abc0', dep.revid)
     self.assertIs(None, dep.revno)
     dep = Dependency.from_string('foo/bar:git:123abc0', ':')
     self.assertEqual('foo/bar', dep.package)
     self.assertEqual('git', dep.vcs)
     self.assertEqual('123abc0', dep.revid)
     self.assertIs(None, dep.revno)
示例#4
0
文件: test_deptree.py 项目: mjs/juju
 def test_from_string(self):
     dep = Dependency.from_string('foo/bar\tgit\t123abc0\t', '\t')
     self.assertEqual('foo/bar', dep.package)
     self.assertEqual('git', dep.vcs)
     self.assertEqual('123abc0', dep.revid)
     self.assertIs(None, dep.revno)
     dep = Dependency.from_string('foo/bar:git:123abc0', ':')
     self.assertEqual('foo/bar', dep.package)
     self.assertEqual('git', dep.vcs)
     self.assertEqual('123abc0', dep.revid)
     self.assertIs(None, dep.revno)
示例#5
0
 def test_consolidate_deps(self):
     expected_deps = {
         'github/foo': Dependency('github/foo', 'git', 'rev123', None),
         'github/bar': Dependency('github/bar', 'git', 'rev456', None),
         'github/baz': Dependency('github/baz', 'git', 'rev789', None),
         'github/qux': Dependency('github/qux', 'git', 'revdef', None),
         'lp/qoh': Dependency('lp/qoh', 'bzr', 'rev789', '3')
     }
     conflict_dep = Dependency('github/baz', 'git', 'revabc', None)
     with temp_dir() as base_dir:
         a_dep_file = '%s/a.tsv' % base_dir
         with open(a_dep_file, 'w') as f:
             f.write(expected_deps['github/foo'].to_line())
             f.write(expected_deps['github/bar'].to_line())
             f.write(expected_deps['github/baz'].to_line())
         b_dep_file = '%s/b.tsv' % base_dir
         with open(b_dep_file, 'w') as f:
             f.write(expected_deps['github/foo'].to_line())
             f.write(conflict_dep.to_line())
             f.write(expected_deps['github/qux'].to_line())
             f.write(expected_deps['lp/qoh'].to_line())
         dep_file = DependencyFile([a_dep_file, b_dep_file])
         deps, conflicts = dep_file.consolidate_deps()
     self.assertEqual([(b_dep_file, conflict_dep)], conflicts)
     self.assertEqual(expected_deps, deps)
示例#6
0
 def test_include_deps(self):
     deps = {
         'github/foo': Dependency('github/foo', 'git', 'rev123', None),
         'github/bar': Dependency('github/bar', 'git', 'rev456', None),
     }
     dep_file = DependencyFile([])
     dep_file.deps = deps
     include = [
         Dependency('github/bar', 'git', 'redefined', None),
         Dependency('github/baz', 'git', 'added', None),
     ]
     redefined, added = dep_file.include_deps(include)
     self.assertEqual([include[0]], redefined)
     self.assertEqual([include[1]], added)
     self.assertEqual(include[0], dep_file.deps['github/bar'])
     self.assertEqual(include[1], dep_file.deps['github/baz'])
示例#7
0
文件: test_deptree.py 项目: mjs/juju
 def test_write_tmp_tsv(self):
     a_dep = Dependency('github/foo', 'git', 'rev123', None)
     b_dep = Dependency('github/bar', 'git', 'rev456', None)
     consolidated_deps = {
         a_dep.package: a_dep,
         b_dep.package: b_dep,
     }
     dep_file = DependencyFile([])
     dep_file.deps = consolidated_deps
     tmp_tsv = dep_file.write_tmp_tsv()
     self.assertEqual(tmp_tsv, dep_file.tmp_tsv)
     self.assertTrue(os.path.isfile(tmp_tsv))
     self.addCleanup(os.unlink, tmp_tsv)
     with open(tmp_tsv) as f:
         content = f.read()
     expected = ''.join([b_dep.to_line(), a_dep.to_line()])
     self.assertEqual(expected, content)
示例#8
0
 def test_write_tmp_tsv(self):
     a_dep = Dependency('github/foo', 'git', 'rev123', None)
     b_dep = Dependency('github/bar', 'git', 'rev456', None)
     consolidated_deps = {
         a_dep.package: a_dep,
         b_dep.package: b_dep,
     }
     dep_file = DependencyFile([])
     dep_file.deps = consolidated_deps
     tmp_tsv = dep_file.write_tmp_tsv()
     self.assertEqual(tmp_tsv, dep_file.tmp_tsv)
     self.assertTrue(os.path.isfile(tmp_tsv))
     self.addCleanup(os.unlink, tmp_tsv)
     with open(tmp_tsv) as f:
         content = f.read()
     expected = ''.join([b_dep.to_line(), a_dep.to_line()])
     self.assertEqual(expected, content)
示例#9
0
 def test_get_args(self):
     args = get_args(['-d', '-v', '-i', 'foo:git:rev', 'baz', 'qux'])
     self.assertTrue(args.verbose)
     self.assertTrue(args.dry_run)
     self.assertEqual([Dependency('foo', 'git', 'rev')], args.include)
     self.assertEqual(['baz', 'qux'], args.dep_files)
示例#10
0
 def test_to_line(self):
     self.assertEqual('github/foo\tgit\trev123\t\n',
                      Dependency('github/foo', 'git', 'rev123').to_line())
     self.assertEqual(
         'github/foo\tgit\trev123\t3\n',
         Dependency('github/foo', 'git', 'rev123', '3').to_line())
示例#11
0
 def test_str(self):
     self.assertEqual('github/foo\tgit\trev123\t',
                      str(Dependency('github/foo', 'git', 'rev123')))
     self.assertEqual('github/foo\tgit\trev123\t3',
                      str(Dependency('github/foo', 'git', 'rev123', '3')))
示例#12
0
 def test_repr(self):
     self.assertEqual('<Dependency github/foo git rev123>',
                      repr(Dependency('github/foo', 'git', 'rev123')))
     self.assertEqual('<Dependency github/foo git rev123 3>',
                      repr(Dependency('github/foo', 'git', 'rev123', '3')))
示例#13
0
 def test_ne(self):
     a_dep = Dependency('github/foo', 'git', 'rev123')
     b_dep = Dependency('github/foo', 'git', 'rev123')
     self.assertFalse(a_dep != b_dep)
     c_dep = Dependency('github/bar', 'git', 'rev456')
     self.assertTrue(a_dep != c_dep)
示例#14
0
文件: test_deptree.py 项目: mjs/juju
 def test_from_option(self):
     dep = Dependency.from_option('foo/bar:git:123abc0')
     self.assertEqual('foo/bar', dep.package)
     self.assertEqual('git', dep.vcs)
     self.assertEqual('123abc0', dep.revid)
     self.assertIs(None, dep.revno)
示例#15
0
文件: test_deptree.py 项目: mjs/juju
 def test_from_line(self):
     dep = Dependency.from_line('foo/bar\tgit\t123abc0')
     self.assertEqual('foo/bar', dep.package)
     self.assertEqual('git', dep.vcs)
     self.assertEqual('123abc0', dep.revid)
     self.assertIs(None, dep.revno)
示例#16
0
 def test_from_line(self):
     dep = Dependency.from_line('foo/bar\tgit\t123abc0')
     self.assertEqual('foo/bar', dep.package)
     self.assertEqual('git', dep.vcs)
     self.assertEqual('123abc0', dep.revid)
     self.assertIs(None, dep.revno)
示例#17
0
 def test_from_option(self):
     dep = Dependency.from_option('foo/bar:git:123abc0')
     self.assertEqual('foo/bar', dep.package)
     self.assertEqual('git', dep.vcs)
     self.assertEqual('123abc0', dep.revid)
     self.assertIs(None, dep.revno)