def test_import_packages(self): """Try to import each namespace""" for pkg in self.setup.generate_packages(extra=self.EXTRA_PKGS, exclude=self.EXCLUDE_PKGS): self._import(pkg) if self.CHECK_HEADER: for fn in self.setup.files_in_packages()['packages'][pkg]: self.assertFalse(check_header(os.path.join(self.setup.REPO_BASE_DIR, fn), script=False, write=False), msg='check_header of %s' % fn)
def test_importscripts(self): """Try to import each python script as a module""" # sys.path is already setup correctly for scr in self.setup.generate_scripts(extra=self.EXTRA_SCRIPTS, exclude=self.EXCLUDE_SCRIPTS): if not scr.endswith('.py'): continue self._import(os.path.basename(scr)[:-len('.py')]) if self.CHECK_HEADER: self.assertFalse(check_header(os.path.join(self.setup.REPO_BASE_DIR, scr), script=True, write=False), msg='check_header of %s' % scr)
def test_check_header(self): """Test begin_end_from_header method Compares files with .check against ones with .fixed """ THIS_YEAR = 2345 def this_year(): return THIS_YEAR vsc.install.headers._this_year = this_year # fake this repo as lgpv2+ def lgpl(): log.info('mocked get_license returns LGPLv2+') return 'LGPLv2+', '' vsc.install.shared_setup.get_license = lgpl # don't actually write, just compare with a .fixed file compares = [] def compare(filename, content): log.info('mocked write does compare for %s ' % filename) name = filename.replace('.check', '') compares.append(name) new_filename = filename.replace('.check', '.fixed') self.assertEqual(content, open(new_filename).read(), msg='new content is as expected for %s' % filename) vsc.install.headers._write = compare # filename without .check or .fixed, tuple with script or not and , changed or not expected = { 't1': (False, True), 't2': (True, True), 't3': (True, False), 't4-external': (False, False), # external license 't5': (True, True), # encoding 't6': (True, True), # python + header 't7': (True, True), # python only 't8.py': (True, True), # python script with missing shebang 't9.sh': (True, True), # shell script with missing shebang/license header } for filename in glob.glob(os.path.join(self.setup.REPO_TEST_DIR, 'headers', "*.check*")): name = os.path.basename(filename).replace('.check', '') self.assertEqual(check_header(filename, script=expected[name][0], write=True), expected[name][1], msg='checked headers for filename %s' % filename) not_changed = [k for k, v in expected.items() if not v[1]] self.assertEqual(len(compares), len(expected) - len(not_changed), msg='number of mocked writes/compares as expected') for ext in not_changed: self.assertFalse(ext in compares, msg='not changed %s not compared' % ext)
def test_check_header(self): """Test begin_end_from_header method Compares files with .check against ones with .fixed """ THIS_YEAR = 2345 def this_year(): return THIS_YEAR vsc.install.headers._this_year = this_year # fake this repo as lgpv2+ def lgpl(): log.info('mocked get_license returns LGPLv2+') return 'LGPLv2+', '' vsc.install.shared_setup.get_license = lgpl # don't actually write, just compare with a .fixed file compares = [] def compare(filename, content): log.info('mocked write does compare for %s ' % filename) name = filename[:-len('.check')] compares.append(name) new_filename = '%s.fixed' % name self.assertEqual(content, open(new_filename).read(), msg='new content is as expected for %s' % filename) vsc.install.headers._write = compare # filename without .check or .fixed, tuple with script or not and , changed or not expected = { 't1': (False, True), 't2': (True, True), 't3': (True, False), 't4-external': (False, False), # external license 't5': (True, True), # encoding 't6': (True, True), # python + header 't7': (True, True), # python only } for filename in glob.glob(os.path.join(self.setup.REPO_TEST_DIR, 'headers', "*.check")): name = os.path.basename(filename)[:-len('.check')] self.assertEqual(check_header(filename, script=expected[name][0], write=True), expected[name][1], msg='checked headers for filename %s' % filename) not_changed = [k for k, v in expected.items() if not v[1]] self.assertEqual(len(compares), len(expected) - len(not_changed), msg='number of mocked writes/compares as expected') for ext in not_changed: self.assertFalse(ext in compares, msg='not changed %s not compared' % ext)