def test_recognized_username(self):
     """connexion() avec un nom utilisateurs reconnu"""
     username1 = "greg"
     username2 = "dax"
     list_users = pickle_get(students_arg=True)[0]["name_id_dict"].keys()
     self.assertEqual(True, (username1 in list_users))
     self.assertEqual(True, (username2 in list_users))
 def test_unknow_username(self):
     """connexion() avec un nom utilisateurs inconnu"""
     username1 = "prof1"
     username2 = "prof2"
     list_users = pickle_get(students_arg=True)[0]["name_id_dict"].keys()
     self.assertEqual(True, (username1 not in list_users))
     self.assertEqual(True, (username2 not in list_users))
Exemple #3
0
 def login(self):
     """
     PRE:
     POST: Lance tool.window si le nom utilisateur existe et que le mot de passe correspond.
             Un message d'erreur est affiché si l'utilisateur n'existe pas.
     """
     try:
         list_users = pickle_get(
             students_arg=True)[0]["name_id_dict"].keys()
         if self.ids.Usrname.text in list_users:
             student_instance = pickle_get_instance(self.ids.Usrname.text,
                                                    student=True)
             student_instance.verify_pwd(self.ids.Psw.text)
             ToolWindow.student_instance = student_instance
             EditorWindow.student_instance = student_instance
         else:
             raise UserNameNotFoundException
     except UnknownPasswordException:
         self.ids.displayLogin.text = "Mauvais mot de passe !"
     except UserNameNotFoundException:
         self.ids.displayLogin.text = "Mauvais nom d'utilisateur !"
     except Exception as e:
         self.ids.displayLogin.text = f"Erreur : {e}\n"
     else:
         self.ids.displayLogin.text = "Connexion en cours..."
         return True
Exemple #4
0
 def save_as(self):
     """
     PRE:
     POST: Ouvre le navigateur de fichier apres avoir cliquer sur l'onglet
               enregistrer et sauvegarde le fichier a l endroit choisi. Si l'
               utilisateur quitte le navigateur de fichier, un message d'erreur est genere.
     """
     try:
         self.pathname = filedialog.asksaveasfilename(
             defaultextension='.*',
             initialdir="/",
             title='Enregistrer sous',
             filetype=[("Text File", "*.txt"), ("Python File", "*.py")])
         list_files = pickle_get(files_arg=True)[2]["name_id_dict"].keys()
         if self.pathname not in list_files:
             new_file(self.pathname, False, None, None,
                      self.student_instance)
         f = open(self.pathname, 'w')
         s = self.ids.TextArea.text
         f.write(s)
         f.close()
         self.ids.displayEditor.text = "Le fichier '" + self.pathname.split(
             '/')[-1]
         self.ids.currentPathname.text = self.pathname.split('/')[-1]
     except FileNotFoundError:
         self.ids.displayEditor.text = "L'opération a été annulée"
     except Exception as e:
         self.ids.displayEditor.text = f"Erreur : {e}"
Exemple #5
0
    def open(self):
        """
        PRE:
        POST: Ouvre un navigateur de fichier, puis après avoir choisis un fichier,
                  implemente son contenu dans TextArea(textInput).
        """
        try:
            self.pathname = filedialog.askopenfilename(
                initialdir="/",
                title="Choisir le fichier",
                filetype=[("Text File", "*.txt"), ("Python File", "*.py")])
            list_files = pickle_get(files_arg=True)[2]["name_id_dict"].keys()
            if self.pathname not in list_files:
                new_file(self.pathname, False, None, None,
                         self.student_instance)

            resultat = ""
            with open(self.pathname, 'r') as filin:
                lignes = filin.readlines()
                for ligne in lignes:
                    resultat += ligne
            self.ids.TextArea.text = resultat
            self.ids.displayEditor.text = "Le fichier  '" + self.pathname.split(
                '/')[-1] + "' a été ouvert"
            self.ids.currentPathname.text = self.pathname.split('/')[-1]
        except FileNotFoundError:
            self.ids.displayEditor.text = "L'opération a été annulée"
        except Exception as e:
            self.ids.displayEditor.text = f"Erreur : {e}"
Exemple #6
0
 def sort_on_course(self):
     """
     PRE:
     POST: Affiche la liste des fichiers tries dans Affichage(Label) en fonction du
             cours defini dans Recherche(TextInput). Un message d'erreur est affiche
             si le cours n'est pas connu du programme.
     """
     try:
         valid_course_name = False
         list_courses = pickle_get(
             courses_arg=True)[3]["name_id_dict"].keys()
         for x in list_courses:
             if self.ids.Research.text == x:
                 valid_course_name = True
         if not valid_course_name:
             raise UnknownObjectException
     except UnknownObjectException:
         self.ids.displayTool.text = "Le cours entre n'existe pas."
     except Exception as e:
         self.ids.displayTool.text = f"Erreur : {e}\n"
     else:
         list_dict = list_sorted_files_on_course([self.ids.Research.text],
                                                 self.student_instance)
         all_pathname = []
         for x in list_dict:
             all_pathname.append(x["pathname"])
         self.ids.displayTool.text = self.list_to_string(all_pathname)
Exemple #7
0
 def list(self):
     """
     PRE: list_choice doit avoir la valeur "students", "courses" ou "files"
     POST: Affiche la liste des fichiers, des cours ou des utilisateurs recenses
             dans Affichage(Label) en fonction de la valeur de Recherche(TextInput).
     """
     list_users = pickle_get(students_arg=True)[0]["name_id_dict"].keys()
     list_courses = pickle_get(courses_arg=True)[3]["name_id_dict"].keys()
     list_files = pickle_get(files_arg=True)[2]["name_id_dict"].keys()
     list_owned_files = []
     for pathname in list_files:
         file_instance_id = pickle_get_instance(pathname, file=True).file_id
         if file_instance_id in self.student_instance.files:
             list_owned_files.append(pathname)
     if self.ids.objectList.text == 'les étudiants:':
         self.ids.displayTool.text = self.list_to_string(list_users)
     elif self.ids.objectList.text == 'les cours:':
         self.ids.displayTool.text = self.list_to_string(list_courses)
     elif self.ids.objectList.text == 'les fichiers:':
         self.ids.displayTool.text = self.list_to_string(list_owned_files)
     else:
         self.ids.displayTool.text = "Veuillez cliquer sur un des trois boutons pour définir la liste a afficher."