Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
    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)