コード例 #1
0
ファイル: login.py プロジェクト: kalevat/ot-harjoitustyo
class LoginMenu:
    """Kirjautumisesta vastaava luokka"""
    def __init__(self):
        """Luokan konstruktori. Käyttäliittymä ja tietokantayhteys"""
        self._ui = UI()
        self._repository = CourseRepository(get_database_connection())

    def login(self):
        """Kirjautuminen

        Returns:
            Käyttäjänimi
        """
        username=""
        while username=="":
            username = self._ui.read("Anna käyttäjätunnus: ")
        result = self._repository.find_user(username)
        if result == []:
            self._ui.write("Ei tunnusta valmiina")
            self._singup(username)
            self.login()
        else:
            result=[]
            while result==[]:
                password = self._ui.read_password("Anna salasana: ")
                result = self._repository.find_password(username,password)
        return username

    def _singup(self,username):
        """Uuden tunnuksen luonti

        Args:
            username: käyttäjänimi
        """
        result = self._ui.read("Haluatko luoda tunnuksen k/e: ")
        if result == "k":
            password_check=False
            while password_check is False:
                password=self._ui.read_password("Anna uusi salasana: ")
                if len(password)>4:
                    password_check=True
                else:
                    self._ui.write("Liian lyhyt salasana")
            self._repository.new_user(username, password)
コード例 #2
0
 def __init__(self, username):
     """Luokan konstruktori. Luo päävalikon valinnat
     Args:
         username: kirjautuneen käyttäjän nimi
     """
     self._actions = {
         "x": "x Lopeta",
         "1": "1 Uusi kurssi",
         "2": "2 Hae kurssit",
         "3": "3 Poista kurssi",
         "4": "4 Muuta tietoja",
         "5": "5 Syötä tenttipäivämäärä",
         "6": "6 Ilmoittaudu kurssille",
         "7": "7 Tulevat tenttini"
     }
     self._headers = ["Kurssi", "Opintopisteet"]
     self._ui = UI()
     self._repository = CourseRepository(get_database_connection())
     self._username = username
コード例 #3
0
ファイル: login_test.py プロジェクト: kalevat/ot-harjoitustyo
class TestLogin(unittest.TestCase):
    def setUp(self):
        self.users = CourseRepository(get_database_connection())
        self.users.delete_all()
        self.login = LoginMenu

    def test_newuser(self):
        self.users.new_user("tomi", "salasana")
        result = self.users.find_user("tomi")
        self.assertEqual(len(result), 1)

    def test_password(self):
        self.users.new_user("tomi", "salasana")
        result = self.users.find_password("tomi", "salasana")
        self.assertEqual(len(result), 1)
コード例 #4
0
ファイル: login_test.py プロジェクト: kalevat/ot-harjoitustyo
 def setUp(self):
     self.users = CourseRepository(get_database_connection())
     self.users.delete_all()
     self.login = LoginMenu
コード例 #5
0
 def setUp(self):
     self.course = CourseRepository(get_database_connection())
     self.users = CourseRepository(get_database_connection())
     self.course.delete_all()
コード例 #6
0
class TestData(unittest.TestCase):
    def setUp(self):
        self.course = CourseRepository(get_database_connection())
        self.users = CourseRepository(get_database_connection())
        self.course.delete_all()

    def test_create(self):
        self.course.create("english","2")
        courses = self.course.get()
        self.assertEqual(len(courses),1)
        self.assertEqual(courses[0].course_name,"english")
        self.assertEqual(courses[0].credit,2)

    def test_find_all(self):
        self.course.create("english","2")
        self.course.create("math","5")
        courses = self.course.get()
        self.assertEqual(len(courses),2)
        self.assertEqual(courses[0].course_name,"english")
        self.assertEqual(courses[0].credit,2)
        self.assertEqual(courses[1].course_name,"math")
        self.assertEqual(courses[1].credit,5)

    def test_find_one(self):
        self.course.create("english","2")
        courses = self.course.one_course("english")
        self.assertEqual(len(courses),1)

    def test_delete_one(self):
        self.course.create("swedish","2")
        self.course.delete_one("swedish")
        courses = self.course.one_course("swedish")
        self.assertEqual(len(courses),0)

    def test_change(self):
        self.course.create("history","2")
        self.course.change("history","4")
        courses = self.course.get()
        self.assertEqual(courses[0].credit,4)
       
    def test_course_date(self):
        self.course.create("english","3")
        self.course.course_date("english","20211230")
        courses = self.course.get()
        self.assertEqual(courses[0].date,"20211230")

    def test_register_course(self):
        self.course.create("english","3")
        self.users.new_user("tomi","salasana")
        self.course.register_course("english","tomi")
        self.course.course_date("english","20211231")
        register = self.course.my_exam("tomi","20210101")
        self.assertEqual(len(register),1)
コード例 #7
0
class HomeMenu:
    """Päävalikon logiikasta vastaava luokka
    Attributes:
        username: kirjautuneen käyttäjän nimi
    """
    def __init__(self, username):
        """Luokan konstruktori. Luo päävalikon valinnat
        Args:
            username: kirjautuneen käyttäjän nimi
        """
        self._actions = {
            "x": "x Lopeta",
            "1": "1 Uusi kurssi",
            "2": "2 Hae kurssit",
            "3": "3 Poista kurssi",
            "4": "4 Muuta tietoja",
            "5": "5 Syötä tenttipäivämäärä",
            "6": "6 Ilmoittaudu kurssille",
            "7": "7 Tulevat tenttini"
        }
        self._headers = ["Kurssi", "Opintopisteet"]
        self._ui = UI()
        self._repository = CourseRepository(get_database_connection())
        self._username = username

    def start(self):
        """Päävalikko"""

        self._help()
        while True:
            action = self._ui.read("Anna komento: ")

            if not action in self._actions:
                self._ui.write("virheellinen komento")
                self._help()
                continue

            if action == "1":
                self._new_course()
            elif action == "2":
                self._get_courses()
            elif action == "3":
                self._delete_course()
            elif action == "4":
                self._change_course()
            elif action == "5":
                self._exam_date()
            elif action == "6":
                self._register_course()
            elif action == "7":
                self._my_exam()
            elif action == "x":
                break

    def _input_course(self):
        """Kurssin tarkistaminen tietokannasta

        Returns:
            Kurssin nimi
            jos ei löydy niin False
        """

        name = self._ui.read("Anna kurssinimi: ")
        if self._repository.one_course(name) == []:
            self._ui.write("Kurssia ei löydy")
            return False
        return name

    def _new_course(self):
        """Uuden kurssin luominen"""

        name = self._ui.read("Anna kurssinimi: ")
        credit = self._ui.read("Anna opintopisteet: ")
        self._repository.create(name, credit)

    def _get_courses(self):
        """Kurssitietojen haku"""

        self._ui.write("{:<15}{:<18}".format(self._headers[0],
                                             self._headers[1]))
        for i in self._repository.get():
            self._ui.write("{:<15}{:<18}".format(i.course_name, i.credit))

    def _delete_course(self):
        """Kurssin poistaminen"""

        name = self._input_course()
        if name is not False:
            self._repository.delete_one(name)

    def _change_course(self):
        """Kurssin opintopisteiden vaihtaminen"""

        name = self._input_course()
        if name is not False:
            credit = self._ui.read("Anna uudet opintopisteet: ")
            self._repository.change(name, credit)

    def _exam_date(self):
        """Kurssin tenttipäivän lisääminen"""

        name = self._input_course()
        if name is not False:
            date = self._ui.read("Anna tenttipäivämäärä dd/mm/yyyy: ")
            day, month, year = date.split('/')
            try:
                datetime.datetime(int(year), int(month), int(day))
            except ValueError:
                self._ui.write("Väärä päivämäärä")
                return
            today_date = datetime.datetime.today().strftime('%Y%m%d')
            if date < today_date:
                self._ui.write("Väärä päivämäärä")
                return
            self._repository.course_date(name, year + month + day)

    def _register_course(self):
        """Kurssille rekisteröinti"""

        name = self._input_course()
        if name is not False:
            self._repository.register_course(name, self._username)

    def _my_exam(self):
        """Käyttäjän tulevat kurssit"""

        today_date = datetime.datetime.today().strftime('%Y%m%d')
        for i in self._repository.my_exam(self._username, today_date):
            self._ui.write("{:<15}{:<18}".format(
                i[0], i[1][6:8] + "/" + i[1][4:6] + "/" + i[1][2:4]))

    def _help(self):
        """Päävalikko"""

        for i in self._actions:
            self._ui.write(self._actions[i])
コード例 #8
0
ファイル: login.py プロジェクト: kalevat/ot-harjoitustyo
 def __init__(self):
     """Luokan konstruktori. Käyttäliittymä ja tietokantayhteys"""
     self._ui = UI()
     self._repository = CourseRepository(get_database_connection())