Esempio n. 1
0
    def test_log_upload(self):
        machine_id_file = os.path.join(self.mnemosyne.config().config_dir,
                                       "machine.id")
        f = open(machine_id_file, "w")
        print("TESTMACHINE", file=f)
        f.close()
        self.config().change_user_id("UPLOADTEST")
        self.config()["max_log_size_before_upload"] = 1
        MnemosyneTest.teardown(self)

        self.mnemosyne = Mnemosyne(upload_science_logs=True,
                                   interested_in_old_reps=True,
                                   asynchronous_database=True)
        self.mnemosyne.components.insert(
            0,
            ("mnemosyne.libmnemosyne.gui_translators.gettext_gui_translator",
             "GetTextGuiTranslator"))
        self.mnemosyne.components.append(\
            ("test_logging", "MyMainWidget"))
        self.mnemosyne.gui_for_component["ScheduledForgottenNew"] = \
            [("mnemosyne_test", "TestReviewWidget")]
        self.mnemosyne.initialise(os.path.abspath("dot_test"),
                                  automatic_upgrades=False)
        self.mnemosyne.start_review()
        MnemosyneTest.teardown(self)

        self.mnemosyne = Mnemosyne(upload_science_logs=True,
                                   interested_in_old_reps=True,
                                   asynchronous_database=True)
        self.mnemosyne.components.insert(
            0,
            ("mnemosyne.libmnemosyne.gui_translators.gettext_gui_translator",
             "GetTextGuiTranslator"))
        self.mnemosyne.components.append(\
            ("test_logging", "MyMainWidget"))
        self.mnemosyne.gui_for_component["ScheduledForgottenNew"] = \
            [("mnemosyne_test", "TestReviewWidget")]
        self.mnemosyne.initialise(os.path.abspath("dot_test"),
                                  automatic_upgrades=False)
        self.mnemosyne.start_review()
        MnemosyneTest.teardown(self)

        self.mnemosyne = Mnemosyne(upload_science_logs=True,
                                   interested_in_old_reps=True,
                                   asynchronous_database=True)
        self.mnemosyne.components.insert(
            0,
            ("mnemosyne.libmnemosyne.gui_translators.gettext_gui_translator",
             "GetTextGuiTranslator"))
        self.mnemosyne.components.append(\
            ("test_logging", "MyMainWidget"))
        self.mnemosyne.gui_for_component["ScheduledForgottenNew"] = \
            [("mnemosyne_test", "TestReviewWidget")]
        self.mnemosyne.initialise(os.path.abspath("dot_test"),
                                  automatic_upgrades=False)
        self.mnemosyne.start_review()
Esempio n. 2
0
    def test_log_upload_bad_server(self):
        # Most reliable way of setting this variable is throug config.py, otherwise
        # it will stay alive in a dangling imported userconfig.
        config_py_file = os.path.join(self.mnemosyne.config().config_dir,
                                      "config.py")
        f = open(config_py_file, "w")
        print("science_server = \"noserver:80\"", file=f)
        f.close()

        machine_id_file = os.path.join(self.mnemosyne.config().config_dir,
                                       "machine.id")
        f = open(machine_id_file, "w")
        print("TESTMACHINE", file=f)
        f.close()
        self.config().change_user_id("UPLOADTEST")
        self.config()["max_log_size_before_upload"] = 1
        MnemosyneTest.teardown(self)

        self.mnemosyne = Mnemosyne(upload_science_logs=True,
                                   interested_in_old_reps=True,
                                   asynchronous_database=True)
        self.mnemosyne.components.insert(
            0,
            ("mnemosyne.libmnemosyne.gui_translators.gettext_gui_translator",
             "GetTextGuiTranslator"))
        self.mnemosyne.components.append(\
            ("test_logging", "MyMainWidget"))
        self.mnemosyne.gui_for_component["ScheduledForgottenNew"] = \
            [("mnemosyne_test", "TestReviewWidget")]
        self.mnemosyne.initialise(os.path.abspath("dot_test"),
                                  automatic_upgrades=False)
        self.mnemosyne.start_review()
        MnemosyneTest.teardown(self)

        self.mnemosyne = Mnemosyne(upload_science_logs=True,
                                   interested_in_old_reps=True,
                                   asynchronous_database=True)
        self.mnemosyne.components.insert(
            0,
            ("mnemosyne.libmnemosyne.gui_translators.gettext_gui_translator",
             "GetTextGuiTranslator"))
        self.mnemosyne.components.append(\
            ("test_logging", "MyMainWidget"))
        self.mnemosyne.gui_for_component["ScheduledForgottenNew"] = \
            [("mnemosyne_test", "TestReviewWidget")]
        self.mnemosyne.initialise(os.path.abspath("dot_test"),
                                  automatic_upgrades=False)
        self.mnemosyne.start_review()
Esempio n. 3
0
 def load_mnemosyne(self):
     self.mnemosyne = Mnemosyne(upload_science_logs=True,
                                interested_in_old_reps=True)
     self.mnemosyne.components.insert(
         0, (("mnemosyne.libmnemosyne.translators.gettext_translator",
              "GetTextTranslator")))
     self.mnemosyne.components.append(\
         ("mnemosyne.libmnemosyne.ui_components.main_widget",
          "MainWidget"))
     self.mnemosyne.components.append(\
         ("mnemosyne.web_server.review_wdgt",
          "ReviewWdgt"))
     self.mnemosyne.components.append(\
         ("mnemosyne.web_server.web_server_render_chain",
          "WebServerRenderChain"))
     self.mnemosyne.initialise(self.data_dir,
                               config_dir=self.config_dir,
                               filename=self.filename,
                               automatic_upgrades=False)
     self.mnemosyne.review_controller().set_render_chain("web_server")
     self.save_after_n_reps = self.mnemosyne.config()["save_after_n_reps"]
     self.mnemosyne.config()["save_after_n_reps"] = 1
     self.mnemosyne.start_review()
     self.mnemosyne.review_widget().set_is_server_local(\
         self.is_server_local)
     self.is_mnemosyne_loaded = True
     self.release_database_after_timeout = \
         ReleaseDatabaseAfterTimeout(self.port)
     self.release_database_after_timeout.start()
Esempio n. 4
0
    def test_recover_user_id_2(self):
        assert self.config()["user_id"] is not None
        MnemosyneTest.teardown(self)

        open(
            os.path.join(os.getcwd(), "dot_test", "history",
                         "userid_machine_001.bz2"), "w")
        os.remove(os.path.join(os.getcwd(), "dot_test", "config.db"))

        self.mnemosyne = Mnemosyne(upload_science_logs=False,
                                   interested_in_old_reps=True,
                                   asynchronous_database=True)
        self.mnemosyne.components.insert(
            0,
            ("mnemosyne.libmnemosyne.gui_translators.gettext_gui_translator",
             "GetTextGuiTranslator"))
        self.mnemosyne.components.append(\
            ("test_logging", "MyMainWidget"))
        self.mnemosyne.gui_for_component["ScheduledForgottenNew"] = \
            [("mnemosyne_test", "TestReviewWidget")]
        self.mnemosyne.initialise(os.path.abspath("dot_test"),
                                  automatic_upgrades=False)
        self.mnemosyne.start_review()

        assert self.config()["user_id"] == "userid"
Esempio n. 5
0
    def setup(self):
        self.initialise_data_dir()
        path = os.path.join(os.getcwd(), "..", "mnemosyne", "libmnemosyne",
                            "renderers")
        if path not in sys.path:
            sys.path.append(path)
        self.mnemosyne = Mnemosyne(upload_science_logs=False,
                                   interested_in_old_reps=True,
                                   asynchronous_database=True)
        self.mnemosyne.components.insert(
            0,
            ("mnemosyne.libmnemosyne.gui_translators.gettext_gui_translator",
             "GetTextGuiTranslator"))
        self.mnemosyne.components.append(\
            ("test_cloze", "Widget"))
        self.mnemosyne.gui_for_component["ScheduledForgottenNew"] = \
            [("mnemosyne_test", "TestReviewWidget")]
        self.mnemosyne.initialise(os.path.abspath("dot_test"),
                                  automatic_upgrades=False)
        self.review_controller().reset()

        from mnemosyne.libmnemosyne.card_types.cloze import ClozePlugin
        for plugin in self.plugins():
            if isinstance(plugin, ClozePlugin):
                plugin.activate()
                break
Esempio n. 6
0
 def restart(self):
     # If there is another Mnemosyne still running, finalise it so as to
     # avoid having multiple component_managers active.
     if hasattr(self, "mnemosyne"):
         try:
             self.mnemosyne.finalise()
         except:
             pass
     path = os.path.join(os.getcwd(), "..", "mnemosyne", "libmnemosyne",
                         "renderers")
     if path not in sys.path:
         sys.path.append(path)
     self.mnemosyne = Mnemosyne(upload_science_logs=False,
         interested_in_old_reps=True, asynchronous_database=True)
     self.mnemosyne.components.insert(0,
         ("mnemosyne.libmnemosyne.gui_translators.gettext_gui_translator",
          "GetTextGuiTranslator"))
     self.mnemosyne.components.append(\
         ("mnemosyne.libmnemosyne.ui_components.main_widget", "MainWidget"))
     self.mnemosyne.gui_for_component["ScheduledForgottenNew"] = \
         [("mnemosyne_test", "TestReviewWidget")]
     self.mnemosyne.gui_for_component["CramAll"] = \
         [("mnemosyne_test", "TestReviewWidget")]
     self.mnemosyne.initialise(os.path.abspath("dot_test"),
                               automatic_upgrades=False)
     self.mnemosyne.start_review()
Esempio n. 7
0
 def __init__(self):
     shutil.rmtree(os.path.abspath("dot_sync_server"), ignore_errors=True)
     self.mnemosyne = Mnemosyne(upload_science_logs=False,
                                interested_in_old_reps=True)
     self.mnemosyne.components.insert(
         0,
         ("mnemosyne.libmnemosyne.gui_translator", "GetTextGuiTranslator"))
     self.mnemosyne.components.append(("test_sync", "Widget"))
     self.mnemosyne.gui_for_component["ScheduledForgottenNew"] = \
         [("mnemosyne_test", "TestReviewWidget")]
     self.mnemosyne.initialise(os.path.abspath("dot_sync_server"),
                               automatic_upgrades=False)
     self.mnemosyne.config().change_user_id("user_id")
     self.mnemosyne.review_controller().reset()
     self.supports_binary_transfer = lambda x: False
     # Add 20 cards to database.
     card_type = self.mnemosyne.card_type_with_id("1")
     for i in range(20):
         fact_data = {"f": "question %d" % (i, ), "b": "answer"}
         self.mnemosyne.controller().create_new_cards(fact_data,
                                                      card_type,
                                                      grade=-1,
                                                      tag_names=["default"
                                                                 ])[0]
     self.mnemosyne.database().save()
     self.mnemosyne.database().release_connection()
Esempio n. 8
0
 def load_mnemosyne(self):
     self.mnemosyne = Mnemosyne(upload_science_logs=True,
                                interested_in_old_reps=True)
     self.mnemosyne.components.insert(
         0, (("mnemosyne.libmnemosyne.translators.gettext_translator",
              "GetTextTranslator")))
     self.mnemosyne.components.append(\
         ("mnemosyne.libmnemosyne.ui_components.main_widget",
          "MainWidget"))
     self.mnemosyne.components.append(\
         ("mnemosyne.web_server.web_server_render_chain",
          "WebServerRenderChain"))
     self.mnemosyne.gui_for_component["ScheduledForgottenNew"] = [\
         ("mnemosyne.web_server.review_wdgt",
          "ReviewWdgt")]
     self.mnemosyne.initialise(self.data_dir,
                               config_dir=self.config_dir,
                               filename=self.filename,
                               automatic_upgrades=False)
     self.save_after_n_reps = self.mnemosyne.config()["save_after_n_reps"]
     self.mnemosyne.config()["save_after_n_reps"] = 1
     self.mnemosyne.config()["study_mode"] = "ScheduledForgottenNew"
     self.mnemosyne.config()["QA_split"] = "fixed"
     self.mnemosyne.start_review()
     self.mnemosyne.review_widget().set_client_on_same_machine_as_server(\
         self.client_on_same_machine_as_server)
     self.is_mnemosyne_loaded = True
     self.release_database_after_timeout = \
         ReleaseDatabaseAfterTimeout(self.port)
     self.release_database_after_timeout.start()
 def __init__(self):
     shutil.rmtree(os.path.abspath("dot_sync_client"), ignore_errors=True)
     self.mnemosyne = Mnemosyne(upload_science_logs=False,
                                interested_in_old_reps=True)
     self.mnemosyne.components = [
         ("mnemosyne.libmnemosyne.gui_translator", "NoGuiTranslation"),
         ("mnemosyne.libmnemosyne.databases.SQLite", "SQLite"),
         ("mnemosyne.libmnemosyne.configuration", "Configuration"),
         ("mnemosyne.libmnemosyne.loggers.database_logger",
          "DatabaseLogger"),
         ("mnemosyne.libmnemosyne.schedulers.SM2_mnemosyne",
          "SM2Mnemosyne"),
         ("mnemosyne.libmnemosyne.stopwatch", "Stopwatch"),
         ("mnemosyne.libmnemosyne.card_types.front_to_back", "FrontToBack"),
         ("mnemosyne.libmnemosyne.card_types.both_ways", "BothWays"),
         ("mnemosyne.libmnemosyne.card_types.vocabulary", "Vocabulary"),
         ("mnemosyne.libmnemosyne.renderers.html_css", "HtmlCss"),
         ("mnemosyne.libmnemosyne.filters.escape_to_html", "EscapeToHtml"),
         ("mnemosyne.libmnemosyne.filters.expand_paths", "ExpandPaths"),
         ("mnemosyne.libmnemosyne.filters.latex", "Latex"),
         ("mnemosyne.libmnemosyne.render_chains.default_render_chain",
          "DefaultRenderChain"),
         ("mnemosyne.libmnemosyne.render_chains.plain_text_chain",
          "PlainTextChain"),
         ("mnemosyne.libmnemosyne.controllers.default_controller",
          "DefaultController"),
         ("mnemosyne.libmnemosyne.review_controllers.SM2_controller",
          "SM2Controller"),
         ("mnemosyne.libmnemosyne.card_types.map", "MapPlugin"),
         ("mnemosyne.libmnemosyne.card_types.cloze", "ClozePlugin"),
         ("mnemosyne.libmnemosyne.criteria.default_criterion",
          "DefaultCriterion"),
         ("mnemosyne.libmnemosyne.databases.SQLite_criterion_applier",
          "DefaultCriterionApplier"),
         ("mnemosyne.libmnemosyne.plugins.cramming_plugin",
          "CrammingPlugin")
     ]
     self.mnemosyne.components.append(("benchmark_sync_client", "Widget"))
     self.mnemosyne.components.append(
         ("benchmark_sync_client", "MyReviewWidget"))
     self.mnemosyne.initialise(os.path.abspath(
         os.path.join(os.getcwd(), "dot_sync_client")),
                               automatic_upgrades=False)
     self.mnemosyne.config().change_user_id("user_id")
     self.check_for_edited_local_media_files = False
     self.do_backup = False
     self.mnemosyne.review_controller().reset()
     # Do 200 reviews.
     card_type = self.mnemosyne.card_type_with_id("1")
     fact_data = {"f": "question", "b": "answer"}
     card = self.mnemosyne.controller().create_new_cards(
         fact_data, card_type, grade=-1, tag_names=["default"])[0]
     self.mnemosyne.database().save()
     self.mnemosyne.review_controller().show_new_question()
     for i in range(200):
         self.mnemosyne.review_controller().show_answer()
         self.mnemosyne.review_controller().grade_answer(0)
     Client.__init__(self, "client_machine_id", self.mnemosyne.database(),
                     self.mnemosyne.main_widget())
Esempio n. 10
0
 def restart(self):
     self.mnemosyne = Mnemosyne(upload_science_logs=False, interested_in_old_reps=True,
         asynchronous_database=True)
     self.mnemosyne.components.insert(0,
        ("mnemosyne.libmnemosyne.translators.gettext_translator", "GetTextTranslator"))
     self.mnemosyne.components.append(\
         ("test_logging", "MyMainWidget"))
     self.mnemosyne.gui_for_component["ScheduledForgottenNew"] = \
         [("mnemosyne_test", "TestReviewWidget")]
     self.mnemosyne.initialise(os.path.abspath("dot_test"), automatic_upgrades=False)
 def setup(self):
     self.initialise_data_dir()
     self.mnemosyne = Mnemosyne(upload_science_logs=False, interested_in_old_reps=True,
                 asynchronous_database=True)
     self.mnemosyne.components.insert(0,
        ("mnemosyne.libmnemosyne.translators.gettext_translator", "GetTextTranslator"))
     self.mnemosyne.components.append(\
         ("mnemosyne_test", "TestReviewWidget"))
     self.mnemosyne.components.append(\
         ("test_smconv_import", "Widget"))
     self.mnemosyne.initialise(os.path.abspath("dot_test"), automatic_upgrades=False)
     self.review_controller().reset()
Esempio n. 12
0
    def setup(self):
        self.initialise_data_dir()
        path = os.path.join(os.getcwd(), "..", "mnemosyne", "libmnemosyne",
                            "renderers")
        if path not in sys.path:
            sys.path.append(path)
        self.mnemosyne = Mnemosyne(upload_science_logs=False,
                                   interested_in_old_reps=True,
                                   asynchronous_database=True)
        self.mnemosyne.components.insert(
            0, ("mnemosyne.libmnemosyne.translators.gettext_translator",
                "GetTextTranslator"))
        self.mnemosyne.components.append(\
            ("test_controller", "Widget"))
        self.mnemosyne.components.append(\
            ("test_controller", "ExportWidget"))
        self.mnemosyne.components.append(\
            ("test_controller", "DataWidget"))
        self.mnemosyne.gui_for_component["ScheduledForgottenNew"] = \
            [("mnemosyne_test", "TestReviewWidget")]
        self.mnemosyne.components.append(\
            ("mnemosyne.libmnemosyne.ui_components.dialogs", "AddCardsDialog"))
        self.mnemosyne.components.append(\
            ("mnemosyne.libmnemosyne.ui_components.dialogs", "EditCardDialog"))
        self.mnemosyne.components.append(\
            ("mnemosyne.libmnemosyne.ui_components.dialogs", "BrowseCardsDialog"))
        self.mnemosyne.components.append(\
            ("mnemosyne.libmnemosyne.ui_components.dialogs", "SyncDialog"))
        self.mnemosyne.components.append(\
            ("mnemosyne.libmnemosyne.ui_components.dialogs", "ManagePluginsDialog"))
        self.mnemosyne.components.append(\
            ("mnemosyne.libmnemosyne.ui_components.dialogs", "ManageCardTypesDialog"))
        self.mnemosyne.components.append(\
            ("mnemosyne.libmnemosyne.ui_components.dialogs", "StatisticsDialog"))
        self.mnemosyne.components.append(\
            ("mnemosyne.libmnemosyne.ui_components.dialogs", "ConfigurationDialog"))
        self.mnemosyne.components.append(\
            ("mnemosyne.libmnemosyne.ui_components.dialogs", "ActivateCardsDialog"))
        self.mnemosyne.components.append(\
            ("mnemosyne.libmnemosyne.ui_components.dialogs", "ImportDialog"))
        self.mnemosyne.components.append(\
            ("mnemosyne.libmnemosyne.ui_components.dialogs", "TipDialog"))
        self.mnemosyne.components.append(\
            ("mnemosyne.libmnemosyne.ui_components.dialogs", "GettingStartedDialog"))
        self.mnemosyne.components.append(\
            ("mnemosyne.libmnemosyne.ui_components.dialogs", "AboutDialog"))
        self.mnemosyne.components.append(\
            ("mnemosyne.libmnemosyne.ui_components.dialogs", "CompactDatabaseDialog"))

        self.mnemosyne.initialise(os.path.abspath("dot_test"),
                                  automatic_upgrades=False)
        self.review_controller().reset()
Esempio n. 13
0
 def setup(self):
     self.initialise_data_dir()
     self.mnemosyne = Mnemosyne(upload_science_logs=False, interested_in_old_reps=True,
                 asynchronous_database=True)
     self.mnemosyne.components.insert(0,
        ("mnemosyne.libmnemosyne.gui_translators.gettext_gui_translator", "GetTextGuiTranslator"))
     self.mnemosyne.gui_for_component["ScheduledForgottenNew"] = \
         [("mnemosyne_test", "TestReviewWidget")]
     self.mnemosyne.components.append(\
         ("test_mem_import", "Widget"))
     self.mnemosyne.components.append(\
         ("test_mem_import", "MyImportDialog"))
     self.mnemosyne.initialise(os.path.abspath("dot_test"), automatic_upgrades=False)
     self.review_controller().reset()
Esempio n. 14
0
def test_setup():
    shutil.rmtree("dot_test", ignore_errors=True)
    global mnemosyne
    mnemosyne = Mnemosyne(upload_science_logs=False, interested_in_old_reps=True)
    mnemosyne.components.insert(0, ("mnemosyne.libmnemosyne.translators.gettext_translator",
        "GetTextTranslator"))
    mnemosyne.components.append(\
        ("test_add_cards", "Widget"))
    mnemosyne.gui_for_component["ScheduledForgottenNew"] = \
        [("mnemosyne_test", "TestReviewWidget")]    
    mnemosyne.components.append(\
        ("mnemosyne.libmnemosyne.ui_components.dialogs", "EditCardDialog"))
    mnemosyne.initialise(os.path.abspath("dot_test"), automatic_upgrades=False)
    mnemosyne.review_controller().reset()
Esempio n. 15
0
 def restart(self):
     path = os.path.join(os.getcwd(), "..", "mnemosyne", "libmnemosyne",
                         "renderers")
     if path not in sys.path:
         sys.path.append(path)
     self.mnemosyne = Mnemosyne(upload_science_logs=False, interested_in_old_reps=True,
         asynchronous_database=True)
     self.mnemosyne.components.insert(0,
        ("mnemosyne.libmnemosyne.gui_translators.gettext_gui_translator", "GetTextGuiTranslator"))
     self.mnemosyne.components.append(\
         ("test_media", "Widget"))
     self.mnemosyne.gui_for_component["ScheduledForgottenNew"] = \
         [("mnemosyne_test", "TestReviewWidget")]
     self.mnemosyne.initialise(os.path.abspath("dot_test"), automatic_upgrades=False)
     self.review_controller().reset()
Esempio n. 16
0
 def setup(self):
     self.initialise_data_dir()
     path = os.path.join(os.getcwd(), "..", "mnemosyne", "libmnemosyne",
                         "renderers")
     if path not in sys.path:
         sys.path.append(path)
     self.mnemosyne = Mnemosyne(upload_science_logs=False, interested_in_old_reps=True,
         asynchronous_database=True)
     self.mnemosyne.components.insert(0,
        ("mnemosyne.libmnemosyne.gui_translators.gettext_gui_translator", "GetTextGuiTranslator"))
     self.mnemosyne.components.append(\
         ("test_cramming", "Widget"))
     self.mnemosyne.gui_for_component["ScheduledForgottenNew"] = \
         [("mnemosyne_test", "TestReviewWidget")]
     self.mnemosyne.gui_for_component["CramAll"] = \
         [("mnemosyne_test", "TestReviewWidget")]
     self.mnemosyne.initialise(os.path.abspath("dot_test"), automatic_upgrades=False)
     self.config()["study_mode"] = "CramAll"
     self.mnemosyne.start_review()
Esempio n. 17
0
    def setup(self):
        self.initialise_data_dir()

        self.mnemosyne = Mnemosyne(upload_science_logs=False, interested_in_old_reps=True,
            asynchronous_database=True)
        self.mnemosyne.components.insert(0,
           ("mnemosyne.libmnemosyne.translators.gettext_translator", "GetTextTranslator"))
        self.mnemosyne.components.append(\
            ("test_cramming", "Widget"))
        self.mnemosyne.components.append(\
            ("mnemosyne_test", "TestReviewWidget"))
        self.mnemosyne.initialise(os.path.abspath("dot_test"), automatic_upgrades=False)

        from mnemosyne.libmnemosyne.plugins.cramming_plugin import CrammingPlugin
        for plugin in self.plugins():
            if isinstance(plugin, CrammingPlugin):
                plugin.activate()
                break
        self.mnemosyne.start_review()
    def setup(self):
        global expected_scheduled_count
        expected_scheduled_count = None
        self.initialise_data_dir()

        self.mnemosyne = Mnemosyne(upload_science_logs=False,
                                   interested_in_old_reps=True,
                                   asynchronous_database=True)
        self.mnemosyne.components.insert(
            0, ("mnemosyne.libmnemosyne.translators.gettext_translator",
                "GetTextTranslator"))
        self.mnemosyne.components.append(\
            ("mnemosyne.libmnemosyne.ui_components.main_widget", "MainWidget"))
        self.mnemosyne.components.append(\
            ("test_review_controller", "MyReviewWidget"))
        self.mnemosyne.components.append(\
            ("mnemosyne.libmnemosyne.ui_components.dialogs", "EditCardDialog"))
        self.mnemosyne.initialise(os.path.abspath("dot_test"),
                                  automatic_upgrades=False)
        self.review_controller().reset()
Esempio n. 19
0
 def restart(self):
     # If there is another Mnemosyne still running, finalise it so as to
     # avoid having multiple component_managers active.
     if hasattr(self, "mnemosyne"):
         try:
             self.mnemosyne.finalise()
         except:
             pass
     self.mnemosyne = Mnemosyne(upload_science_logs=False,
                                interested_in_old_reps=True,
                                asynchronous_database=True)
     self.mnemosyne.components.insert(
         0, ("mnemosyne.libmnemosyne.translators.gettext_translator",
             "GetTextTranslator"))
     self.mnemosyne.components.append(\
         ("mnemosyne.libmnemosyne.ui_components.main_widget", "MainWidget"))
     self.mnemosyne.components.append(\
         ("mnemosyne_test", "TestReviewWidget"))
     self.mnemosyne.initialise(os.path.abspath("dot_test"),
                               automatic_upgrades=False)
     self.mnemosyne.start_review()
    def setup(self):
        self.initialise_data_dir()

        self.mnemosyne = Mnemosyne(upload_science_logs=False, interested_in_old_reps=True,
            asynchronous_database=True)
        self.mnemosyne.components.insert(0,
           ("mnemosyne.libmnemosyne.translators.gettext_translator", "GetTextTranslator"))
        self.mnemosyne.components.append(\
            ("test_mnemosyne2cards", "Widget"))
        self.mnemosyne.components.append(\
            ("test_mnemosyne2cards", "MyMainWidget"))
        self.mnemosyne.components.append(\
            ("mnemosyne_test", "TestReviewWidget"))
        self.mnemosyne.initialise(os.path.abspath("dot_test"),  automatic_upgrades=False)
        self.review_controller().reset()

        from mnemosyne.libmnemosyne.card_types.cloze import ClozePlugin
        for plugin in self.plugins():
            if isinstance(plugin, ClozePlugin):
                plugin.activate()
                break
Esempio n. 21
0
 def setup(self):
     self.initialise_data_dir()
     self.mnemosyne = Mnemosyne(upload_science_logs=False,
                                interested_in_old_reps=True,
                                asynchronous_database=True)
     self.mnemosyne.components.insert(
         0,
         ("mnemosyne.libmnemosyne.gui_translators.gettext_gui_translator",
          "GetTextGuiTranslator"))
     self.mnemosyne.gui_for_component["ScheduledForgottenNew"] = \
         [("mnemosyne_test", "TestReviewWidget")]
     self.mnemosyne.components.append(\
         ("test_db_import", "Widget"))
     self.mnemosyne.initialise(os.path.abspath("dot_test"),
                               automatic_upgrades=False)
     self.review_controller().reset()
     self.merge_db_path = os.path.join(os.getcwd(), "tests", "files",
                                       "basedir_to_merge", "to_merge.db")
     self.merge_db_tmppath = os.path.join(
         os.path.dirname(self.merge_db_path), "to_merge_tmp.db")
     shutil.copy2(self.merge_db_path, self.merge_db_tmppath)
Esempio n. 22
0
def startup():

    global mnemosyne

    # Note that this also includes building the queue and getting the first card.

    mnemosyne = Mnemosyne(upload_science_logs=False,
                          interested_in_old_reps=True)
    mnemosyne.components.insert(
        0,
        ("mnemosyne.libmnemosyne.translators.no_translator", "NoTranslator"))
    mnemosyne.components.append(
        ("mnemosyne.libmnemosyne.ui_components.main_widget", "MainWidget"))
    mnemosyne.components.append(("mnemosyne_test", "TestReviewWidget"))

    mnemosyne.initialise(data_dir=os.path.abspath("dot_benchmark"),
                         automatic_upgrades=False)
    #mnemosyne.initialise(data_dir="\SDMMC\.mnemosyne",
    #automatic_upgrades=False)

    mnemosyne.start_review()
Esempio n. 23
0
 def __init__(self,
              port,
              upload_science_logs=False,
              interested_in_old_reps=False):
     self.mnemosyne = Mnemosyne(upload_science_logs, interested_in_old_reps)
     self.mnemosyne.components.insert(
         0, ("mnemosyne.libmnemosyne.translator", "GetTextTranslator"))
     self.mnemosyne.components.append(\
         ("mnemosyne.UDP_server.main_wdgt",
          "MainWidget"))
     self.mnemosyne.components.append(\
         ("mnemosyne.UDP_server.review_wdgt",
          "ReviewWdgt"))
     socketserver.UDPServer.__init__(self, ("localhost", port), MyHandler)
     print(("Server listening on port", port))
     self.stopped = False
     while not self.stopped:
         # We time out every 0.25 seconds, so that changing
         # self.stopped can have an effect.
         if select.select([self.socket], [], [], 0.25)[0]:
             self.handle_request()
     self.socket.close()
Esempio n. 24
0
 def setup(self):
     global expected_scheduled_count
     expected_scheduled_count = None
     self.initialise_data_dir()
     path = os.path.join(os.getcwd(), "..", "mnemosyne", "libmnemosyne",
                         "renderers")
     if path not in sys.path:
         sys.path.append(path)
     self.mnemosyne = Mnemosyne(upload_science_logs=False,
                                interested_in_old_reps=True,
                                asynchronous_database=True)
     self.mnemosyne.components.insert(
         0, ("mnemosyne.libmnemosyne.translators.gettext_translator",
             "GetTextTranslator"))
     self.mnemosyne.components.append(\
         ("mnemosyne.libmnemosyne.ui_components.main_widget", "MainWidget"))
     self.mnemosyne.gui_for_component["ScheduledForgottenNew"] = \
         [("test_review_controller", "MyReviewWidget")]
     self.mnemosyne.components.append(\
         ("mnemosyne.libmnemosyne.ui_components.dialogs", "EditCardDialog"))
     self.mnemosyne.initialise(os.path.abspath("dot_test"),
                               automatic_upgrades=False)
     self.review_controller().reset()
Esempio n. 25
0
#
# mnemosyne_android.py <*****@*****.**>
#

import os
# Workaround for this bug:
#    https://github.com/pyinstaller/pyinstaller/issues/1113
import encodings.idna

# Initialise Mnemosyne.
from mnemosyne.libmnemosyne import Mnemosyne
mnemosyne = Mnemosyne(upload_science_logs=False, interested_in_old_reps=True)


mnemosyne.components = [\
         ("mnemosyne.libmnemosyne.translators.no_translator",
          "NoTranslator"),
         ("mnemosyne.libmnemosyne.databases.SQLite",
          "SQLite"),
         ("mnemosyne.cle.database_maintenance",
          "AndroidDatabaseMaintenance"),
         ("mnemosyne.libmnemosyne.configuration",
          "Configuration"),
         ("mnemosyne.libmnemosyne.loggers.database_logger",
          "DatabaseLogger"),
         ("mnemosyne.libmnemosyne.schedulers.SM2_mnemosyne",
          "SM2Mnemosyne"),
         ("mnemosyne.libmnemosyne.stopwatch",
          "Stopwatch"),
         ("mnemosyne.libmnemosyne.card_types.front_to_back",
          "FrontToBack"),
Esempio n. 26
0
def startup():

    import gettext
    _ = gettext.gettext

    import os
    import sys

    from optparse import OptionParser

    from PyQt5.QtGui import QApplication

    from mnemosyne.libmnemosyne import Mnemosyne

    # Parse options.

    parser = OptionParser()
    parser.usage = "%prog [<database_file>]"
    parser.add_option("-d",
                      "--datadir",
                      dest="data_dir",
                      help=_("data directory"),
                      default=None)
    (options, args) = parser.parse_args()

    # Check if we have to override the data_dir determined in libmnemosyne,
    # either because we explicitly specified a data_dir on the command line,
    # or because there is a mnemosyne2 directory present in the current directory.
    # The latter is handy when Mnemosyne is run from a USB key, so that there
    # is no need to refer to a drive letter which can change from computer to
    # computer.
    data_dir = None
    if options.data_dir != None:
        data_dir = os.path.abspath(options.data_dir)
    elif os.path.exists(os.path.join(os.getcwd(), "mnemosyne2")):
        data_dir = os.path.abspath(os.path.join(os.getcwd(), "mnemosyne2"))

    # Filename argument.
    if len(args) > 0:
        filename = os.path.abspath(args[0])
    else:
        filename = None

    # Load the Mnemosyne library.
    mnemosyne = Mnemosyne(upload_science_logs=True)

    # Initialise GUI toolkit.
    a = QApplication(sys.argv)
    a.setApplicationName("Mnemosyne")
    # TODO: install translator for Qt messages.
    # Under Windows, move out of library.zip to get the true prefix.
    # from mnemosyne.pyqt_ui.main_window import prefix
    #if sys.platform == "win32":
    #    prefix = os.path.split(prefix)[0]
    #    prefix = os.path.split(prefix)[0]
    #    prefix = os.path.split(prefix)[0]
    #translator = QTranslator(a)
    #translator.load("qt_" + loc + ".qm", os.path.join(prefix, 'locale'))
    #a.installTranslator(translator)

    # Add other components we need. The translator should obviously come first,
    # and the UI components should come in the order they should be instantiated,
    # but apart from that, the order does not matter.
    mnemosyne.components.insert(
        0, ("mnemosyne.libmnemosyne.translator", "GetTextTranslator"))
    mnemosyne.components.append(("mnemosyne.pyqt_ui.main_wdgt", "MainWdgt"))
    mnemosyne.components.append(
        ("mnemosyne.pyqt_ui.review_wdgt", "ReviewWdgt"))
    mnemosyne.components.append(
        ("mnemosyne.pyqt_ui.configuration", "PyQtConfiguration"))
    mnemosyne.components.append(
        ("mnemosyne.pyqt_ui.pyqt_render_chain", "PyQtRenderChain"))
    mnemosyne.components.append(
        ("mnemosyne.pyqt_ui.add_cards_dlg", "AddCardsDlg"))
    mnemosyne.components.append(
        ("mnemosyne.pyqt_ui.edit_card_dlg", "EditCardDlg"))
    mnemosyne.components.append(
        ("mnemosyne.pyqt_ui.browse_cards_dlg", "BrowseCardsDlg"))
    mnemosyne.components.append(
        ("mnemosyne.pyqt_ui.activate_cards_dlg", "ActivateCardsDlg"))
    mnemosyne.components.append(
        ("mnemosyne.pyqt_ui.cloned_card_types_list_dlg",
         "ClonedCardTypesListDlg"))
    mnemosyne.components.append(
        ("mnemosyne.pyqt_ui.card_appearance_dlg", "CardAppearanceDlg"))
    mnemosyne.components.append(
        ("mnemosyne.pyqt_ui.activate_plugins_dlg", "ActivatePluginsDlg"))
    mnemosyne.components.append(
        ("mnemosyne.pyqt_ui.statistics_dlg", "StatisticsDlg"))
    mnemosyne.components.append(
        ("mnemosyne.pyqt_ui.card_type_wdgt_generic", "GenericCardTypeWdgt"))
    mnemosyne.components.append(
        ("mnemosyne.pyqt_ui.statistics_wdgts_plotting", "ScheduleWdgt"))
    mnemosyne.components.append(
        ("mnemosyne.pyqt_ui.statistics_wdgts_plotting", "RetentionScoreWdgt"))
    mnemosyne.components.append(
        ("mnemosyne.pyqt_ui.statistics_wdgts_plotting", "GradesWdgt"))
    mnemosyne.components.append(
        ("mnemosyne.pyqt_ui.statistics_wdgts_plotting", "EasinessWdgt"))
    mnemosyne.components.append(
        ("mnemosyne.pyqt_ui.statistics_wdgts_plotting", "CardsAddedWdgt"))
    mnemosyne.components.append(
        ("mnemosyne.pyqt_ui.statistics_wdgt_html", "HtmlStatisticsWdgt"))
    mnemosyne.components.append(
        ("mnemosyne.pyqt_ui.criterion_wdgt_default", "DefaultCriterionWdgt"))
    mnemosyne.components.append(
        ("mnemosyne.pyqt_ui.configuration_dlg", "ConfigurationDlg"))
    mnemosyne.components.append(("mnemosyne.pyqt_ui.sync_dlg", "SyncDlg"))
    mnemosyne.components.append(
        ("mnemosyne.pyqt_ui.qt_sync_server", "QtSyncServer"))
    mnemosyne.components.append(
        ("mnemosyne.pyqt_ui.configuration_wdgt_main", "ConfigurationWdgtMain"))
    mnemosyne.components.append(
        ("mnemosyne.pyqt_ui.configuration_wdgt_sync_server",
         "ConfigurationWdgtSyncServer"))

    # Run Mnemosyne.
    mnemosyne.initialise(data_dir=data_dir, filename=filename)
    mnemosyne.main_widget().show()
    mnemosyne.main_widget().raise_()  # Needed for OSX.
    # TODO: check first run wizard.
    #if config()["first_run"] == True:
    #    w.productTour()
    #    config()["first_run"] = False
    #elif config()["show_daily_tips"] == True:
    #    w.Tip()

    a.exec_()
    mnemosyne.finalise()