def test_prebuilt(self): """ test --name --prebuilt """ argv = ["fedora-review", "-rpn", "python-spiffgtkwidgets"] argv.extend(["--mock-config", "fedora-16-i386"]) sys.argv = argv os.chdir("prebuilt") if os.path.exists("python-spiffgtkwidgets"): shutil.rmtree("python-spiffgtkwidgets") ReviewDirs.reset() Settings.init(True) rpms = glob("/var/lib/mock/fedora-16-i386/*.rpm") for r in rpms: os.unlink(r) rh = ReviewHelper() sys.stdout = open("/dev/null", "w") rh.run() sys.stdout = sys.__stdout__ self.assertEqual(len(rpms), 0) rv = "python-spiffgtkwidgets-review.txt" with open(os.path.abspath(rv)) as f: log = "\n".join(f.readlines()) self.assertIn("Using prebuilt rpms", log) os.chdir(startdir)
def test_prebuilt(self): ''' test --name --prebuilt ''' argv = ['fedora-review', '-rpn', 'python-spiffgtkwidgets'] argv.extend(['--mock-config', 'fedora-16-i386']) sys.argv = argv os.chdir('prebuilt') if os.path.exists('python-spiffgtkwidgets'): shutil.rmtree('python-spiffgtkwidgets') ReviewDirs.reset() Settings.init(True) rpms = glob('/var/lib/mock/fedora-16-i386/*.rpm') for r in rpms: os.unlink(r) rh = ReviewHelper() sys.stdout = open( '/dev/null', 'w') rh.run() sys.stdout = sys.__stdout__ self.assertEqual(len(rpms), 0) rv = 'python-spiffgtkwidgets-review.txt' with open(os.path.abspath(rv)) as f: log = '\n'.join(f.readlines()) self.assertIn('Using prebuilt rpms', log) os.chdir(startdir)
def test_mock_options(self): """ test -o/--mock-options and -m/mock-config """ dflt = os.readlink("/etc/mock/default.cfg") v = "16" if "17" in dflt else "17" d = os.path.join(os.getcwd(), "results") if os.path.exists(d): shutil.rmtree(d) os.mkdir(d) cmd = "fedora-review -n python-test -m fedora-%s-i386" " -o=--resultdir=%s --no-report" % (v, d) self.init_test(cmd.split()) rh = ReviewHelper() rh.run() rpms = glob(os.path.join(d, "*fc%s*.rpm" % v)) self.assertTrue(len(rpms) > 0)
def test_mock_options(self): ''' test -o/--mock-options and -m/mock-config ''' dflt = os.readlink('/etc/mock/default.cfg') v = '16' if '17' in dflt else '17' d = os.path.join(os.getcwd(), 'results') if os.path.exists(d): shutil.rmtree(d) os.mkdir(d) cmd = 'fedora-review -n python-test -m fedora-%s-i386' \ ' -o=--resultdir=%s --no-report' % (v, d) self.init_test(cmd.split()) rh = ReviewHelper() rh.run() rpms = glob(os.path.join(d, '*fc%s*.rpm' % v)) self.assertTrue(len(rpms) > 0)
def run_spec(self, spec): ''' Run all tests for a test spec.... ''' # pylint: disable=C0111,W0212 class Null(object): def write(self, msg): pass argv = ['-rn', spec.testcase, '-x', 'generic-large-docs', '--no-build'] argv.extend(spec.args) self.init_test(spec.testcase, wd=spec.workdir, argv=argv) helper = ReviewHelper() Mock.clear_builddir() if os.path.exists('BUILD'): if os.path.islink('BUILD'): os.unlink('BUILD') else: shutil.rmtree('BUILD') stdout = sys.stdout sys.stdout = Null() rc = helper.run('review.txt') self.assertEqual(rc, 0) sys.stdout = stdout checkdict = helper.checks.get_checks() for check in checkdict.itervalues(): self.assertTrue(check.is_run) if check.is_passed or check.is_pending or check.is_failed: self.assertIn(check.group, spec.groups_ok, check.name + ': group is ' + check.group) for (what, check) in spec.expected: state = checkdict[check].state if what in ['pass', 'fail', 'pending']: self.assertEqual(state, what, check + ': state is ' + str(state)) elif what == 'na': self.assertEqual(state, None, check + ': state is ' + str(state)) elif what.startswith == 'in_attachment': self.assertIn(what.split(':')[1], checkdict[check].attachments[0].text) else: self.assertFalse(what)
def run_spec(self, spec): ''' Run all tests for a test spec.... ''' # pylint: disable=C0111,W0212 class Null(object): def write(self, msg): pass argv = ['-rn', spec.testcase, '-x', 'generic-large-docs', '--no-build'] argv.extend(spec.args) self.init_test(spec.testcase, wd=spec.workdir, argv=argv) helper = ReviewHelper() Mock.clear_builddir() if os.path.exists('BUILD'): if os.path.islink('BUILD'): os.unlink('BUILD') else: shutil.rmtree('BUILD') stdout = sys.stdout sys.stdout = Null() rc = helper.run('review.txt') self.assertEqual(rc, 0) sys.stdout = stdout checkdict = helper.checks.get_checks() for check in checkdict.itervalues(): self.assertTrue(check.is_run) if check.is_passed or check.is_pending or check.is_failed: self.assertIn(check.group, spec.groups_ok, check.name + ': group is ' + check.group) for (what, check) in spec.expected: state = checkdict[check].state if what in ['pass', 'fail', 'pending']: self.assertEqual(state, what, check + ': state is ' + str(state)) elif what == 'na': self.assertEqual(state, None, check + ': state is ' + str(state)) elif what.startswith == 'in_attachment': self.assertIn( what.split(':')[1], checkdict[check].attachments[0].text) else: self.assertFalse(what)
def test_review_helper(self): ''' Test review_helper error handling. ''' # pylint: disable=C0111,W0212 class Null(object): def write(self, msg): pass loglevel = None argv = ['-rn', 'foo', '--no-build'] self.init_test('.', argv) helper = ReviewHelper() stdout = sys.stdout sys.stdout = Null() helper.log.setLevel(logging.CRITICAL) rc = helper.run('review.txt') sys.stdout = stdout if loglevel: os.environ['REVIEW_LOGLEVEL'] = loglevel self.assertEqual(rc, 2)
def test_git_source(self): """ test use of local source0 tarball """ argv = ["fedora-review", "-rpn", "get-flash-videos"] argv.extend(["--mock-config", "fedora-16-i386-rpmfusion_nonfree"]) sys.argv = argv os.chdir("git-source") if os.path.exists("get-flash-videos"): shutil.rmtree("get-flash-videos") ReviewDirs.reset() Settings.init(True) rh = ReviewHelper() sys.stdout = open("/dev/null", "w") rh.run() sys.stdout = sys.__stdout__ rv = "get-flash-videos-review.txt" with open(os.path.abspath(rv)) as f: log = f.read() self.assertIn("Using local file", log) os.chdir(startdir)
def test_git_source(self): ''' test use of local source0 tarball ''' argv = ['fedora-review', '-rpn', 'get-flash-videos'] argv.extend(['--mock-config', 'fedora-16-i386-rpmfusion_nonfree']) sys.argv = argv os.chdir('git-source') if os.path.exists('get-flash-videos'): shutil.rmtree('get-flash-videos') ReviewDirs.reset() Settings.init(True) rh = ReviewHelper() sys.stdout = open( '/dev/null', 'w') rh.run() sys.stdout = sys.__stdout__ rv = 'get-flash-videos-review.txt' with open(os.path.abspath(rv)) as f: log = f.read() self.assertIn('Using local file' , log) os.chdir(startdir)
def test_display(self): """ test -d/--display option. """ # pylint: disable=C0111 class Logger(object): def __init__(self): self.lines = [] def write(self, message): self.lines.append(message) if not srcpath.PLUGIN_PATH in sys.path: sys.path.append(srcpath.PLUGIN_PATH) from FedoraReview.review_helper import ReviewHelper sys.argv = ['fedora-review', '-d', '--no-build'] Settings.init(True) helper = ReviewHelper() stdout = sys.stdout logger = Logger() sys.stdout = logger helper.run() sys.stdout = stdout self.assertTrue(len(logger.lines) > 20)