Esempio n. 1
0
    def _enable_repos(self):

        # 3. run('example.Testrepo', 'enable')
        with patch.object(logging.Logger, 'info') as mocklog:
            self.assertEqual(
                "test", manager.run([self.modulename + ".Testrepo", "enable"]))
            # 4. verify that "alias foo enabled" is logged
            log_arg = mocklog.call_args[0][0]
            self.assertEqual(
                "Enabled class %s.Testrepo (alias 'test')" % self.modulename,
                log_arg)

            # 5. verify that ferenda.ini has changed
            cfg = configparser.ConfigParser()
            cfg.read(["ferenda.ini"])
            self.assertEqual(cfg.get("test", "class"),
                             self.modulename + ".Testrepo")

            #  (same, with 'example.Testrepo2')
            self.assertEqual(
                "test2",
                manager.run([self.modulename + ".Testrepo2", "enable"]))
            cfg = configparser.ConfigParser()
            cfg.read(["ferenda.ini"])
            self.assertEqual(cfg.get("test2", "class"),
                             self.modulename + ".Testrepo2")

        with patch.object(logging.Logger, 'error') as mocklog:
            # 6. run('example.Nonexistent', 'enable') -- the ImportError must
            # be caught and an error printed.
            manager.run([self.modulename + ".Nonexistent", "enable"])
            # 7. verify that a suitable error messsage is logged
            self.assertEqual(
                "No class named '%s.Nonexistent'" % self.modulename,
                mocklog.call_args[0][0])
Esempio n. 2
0
    def _enable_repos(self):

        # 3. run('example.Testrepo', 'enable')
        with patch.object(logging.Logger, 'info') as mocklog:
            self.assertEqual("test",
                             manager.run([self.modulename+".Testrepo", "enable"]))
            # 4. verify that "alias foo enabled" is logged
            log_arg = mocklog.call_args[0][0]
            self.assertEqual("Enabled class %s.Testrepo (alias 'test')" % self.modulename,
                             log_arg)

            # 5. verify that ferenda.ini has changed
            cfg = configparser.ConfigParser()
            cfg.read(["ferenda.ini"])
            self.assertEqual(cfg.get("test","class"), self.modulename+".Testrepo")

            #  (same, with 'example.Testrepo2')
            self.assertEqual("test2",
                             manager.run([self.modulename+".Testrepo2", "enable"]))
            cfg = configparser.ConfigParser()
            cfg.read(["ferenda.ini"])
            self.assertEqual(cfg.get("test2","class"), self.modulename+".Testrepo2")

        with patch.object(logging.Logger, 'error') as mocklog:
            # 6. run('example.Nonexistent', 'enable') -- the ImportError must
            # be caught and an error printed.
            manager.run([self.modulename+".Nonexistent", "enable"])
            # 7. verify that a suitable error messsage is logged
            self.assertEqual("No class named '%s.Nonexistent'" % self.modulename,
                             mocklog.call_args[0][0])
Esempio n. 3
0
 def distill_test(self, downloaded_file, rdf_file, docroot):
     try:
         prefixlen = len(docroot + "/downloaded/")
         if self.repo.storage_policy == "dir":
             suffixlen = len(downloaded_file.split(os.sep)[-1]) + 1
         else:
             suffixlen = len(os.path.splitext(downloaded_file)[1])
         pathfrag = downloaded_file[prefixlen:-suffixlen]
         basefile = self.repo.store.pathfrag_to_basefile(pathfrag)
     except:
         basefile = self.filename_to_basefile(downloaded_file)
     with patch.object(self.repo.documentstore_class, 'downloaded_path',
                       return_value=downloaded_file):
         # self.repo.config.fsmdebug = True
         self.repo.parse(basefile)
     if 'FERENDA_SET_TESTFILES' in os.environ:
         print("Overwriting %r with result of parse (%r)" % (rdf_file, basefile))
         g = rdflib.Graph()
         g.parse(data=util.readfile(self.repo.store.distilled_path(basefile)))
         util.robust_rename(rdf_file, rdf_file + "~")
         with open(rdf_file, "wb") as fp:
             fp.write(g.serialize(format="turtle"))
         return
     self.assertEqualGraphs(rdf_file,
                            self.repo.store.distilled_path(basefile),
                            exact=False)
Esempio n. 4
0
 def parse_test(self, downloaded_file, xhtml_file, docroot):
     # patch method so we control where the downloaded doc is
     # loaded from.
     basefile = self.filename_to_basefile(downloaded_file)
     # with patch('ferenda.DocumentStore.downloaded_path',
     #           return_value=downloaded_file):
     with patch.object(self.repo.documentstore_class, 'downloaded_path',
                       return_value=downloaded_file):
         self.repo.parse(basefile)
     if 'FERENDA_SET_TESTFILES' in os.environ:
         print("Overwriting %r with result of parse (%r)" % (xhtml_file, basefile))
         util.robust_rename(xhtml_file, xhtml_file + "~")
         shutil.copy2(self.repo.store.parsed_path(basefile), xhtml_file)
         return
     self.assertEqualXML(util.readfile(xhtml_file),
                         util.readfile(self.repo.store.parsed_path(basefile)))