Esempio n. 1
0
    def test_6_str(self):
        from src.koodi import Tehtava
        koodi = """
t = Tehtava("koodaa hello world", "Antti", 3)
print(t)
"""
        t = Tehtava("koodaa hello world", "Antti", 3)
        try:
            f"{t}"
        except Exception as e:
            self.fail(
                f'Koodin {koodi}suoritus aiheutti virheen\n{e}\nOnhan metodi määritelty?'
            )

        odotettu = f"{t.id}: koodaa hello world (3 tuntia), koodari Antti EI VALMIS"
        oli = f"{t}"
        self.assertTrue(
            odotettu == oli,
            f"Olion merkkijonoeritys virheellinen. Kun kutsuttiin{koodi}\nodotettiin\n{odotettu}\nmutta merkkijonoesitys oli\n{oli}"
        )

        koodi = """
t = Tehtava("koodaa hello world", "Antti", 3)
t.merkkaa_valmiiksi()
print(t)
"""
        t.merkkaa_valmiiksi()
        odotettu = f"{t.id}: koodaa hello world (3 tuntia), koodari Antti VALMIS"
        oli = f"{t}"
        self.assertTrue(
            odotettu == oli,
            f"Olion merkkijonoeritys virheellinen. Kun kutsuttiin{koodi}\nodotettiin\n{odotettu}\nmutta merkkijonoesitys oli\n{oli}"
        )
Esempio n. 2
0
    def test2_konstruktori(self):
        try:
            from src.koodi import Tehtava
            t = Tehtava("koodaa hello world", "Erkki", 3)
        except Exception as e:
            self.assertTrue(
                False,
                'Luokan Tavara konstuktorin kutsuminen arvoilla Tehtava("koodaa hello world", "Erkki", 3)'
                +
                f' aiheutti virheen: {e}\nVarmista että konstruktori on määritelty oikein'
            )

        try:
            koodi = """
t = Tehtava("koodaa hello world", "Erkki", 3)
t.koodari
"""
            tulos = t.koodari
        except Exception as e:
            self.fail(f"Koodin {koodi}suoritus aiheuttaa virheen {e}")
        odotettu = "Erkki"
        self.assertTrue(
            tulos == odotettu,
            f"Kun suoritetaan {koodi}\nodotettiin {odotettu} tulos on {tulos}")

        try:
            koodi = """
t = Tehtava("koodaa hello world", "Erkki", 3)
t.kuvaus
"""
            tulos = t.kuvaus
        except Exception as e:
            self.fail(f"Koodin {koodi}suoritus aiheuttaa virheen {e}")
        odotettu = "koodaa hello world"
        self.assertTrue(
            tulos == odotettu,
            f"Kun suoritetaan {koodi}\nodotettiin {odotettu} tulos on {tulos}")

        try:
            koodi = """
t = Tehtava("koodaa hello world", "Erkki", 3)
t.kuvaus
"""
            tulos = t.tyomaara
        except Exception as e:
            self.fail(f"Koodin {koodi}suoritus aiheuttaa virheen {e}")
        odotettu = 3
        self.assertTrue(
            tulos == odotettu,
            f"Kun suoritetaan {koodi}\nodotettiin {odotettu} tulos on {tulos}")

        try:
            koodi = """
t = Tehtava("koodaa hello world", "Erkki", 3)
t.id
"""
            tulos = t.id
        except Exception as e:
            self.fail(f"Koodin {koodi}suoritus aiheuttaa virheen {e}")
Esempio n. 3
0
    def test_2_lisaa_tilaus_ja_kaikki_tilaukset_olemassa(self):
        reload_module(self.module)
        from src.koodi import Tilauskirja, Tehtava
        koodi = """
t = Tilauskirja()
t.lisaa_tilaus("koodaa webbikauppa", "Antti", 10)
"""
        t = Tilauskirja()
        try:
            t.lisaa_tilaus("koodaa webbikauppa", "Antti", 10)
        except Exception as e:
            self.fail(
                f'Koodin {koodi}suoritus aiheutti virheen\n{e}\nOnhan metodi lisaa_tilaus(self, kuvaus, koodari, tyomaara) määritelty?'
            )

        koodi = """
t = Tilauskirja()
t.kaikki_tilaukset()
"""
        t = Tilauskirja()
        try:
            t.kaikki_tilaukset()
        except Exception as e:
            self.fail(
                f'Koodin {koodi}suoritus aiheutti virheen\n{e}\nOnhan metodi kaikki_tilaukset(self) määritelty?'
            )

        koodi = """
t = Tilauskirja()
t.lisaa_tilaus("koodaa webbikauppa", "Antti", 10)
t.kaikki_tilaukset()
"""
        t = Tilauskirja()
        t.lisaa_tilaus("koodaa webbikauppa", "Antti", 10)
        try:
            val = t.kaikki_tilaukset()
        except Exception as e:
            self.fail(
                f'Koodin {koodi}suoritus aiheutti virheen\n{e}\nOnhan metodi kaikki_tilaukset(self) määritelty?'
            )

        taip = str(type(val)).replace("<class '", "").replace("'>", "")
        self.assertTrue(
            type(val) == type([]),
            f"Kon suoritetaan{koodi}paluuarvon pitäisi olla lista, nyt sen tyyppi on {taip}"
        )
        odotettu = 1
        self.assertTrue(
            len(val) == odotettu,
            f"Kun suoritetaan {koodi}\npitäisi palauttaa lista, jonka pituus on {odotettu}, listan pituus oli {len(val)}"
        )

        ttt = Tehtava("koodaa hello world", "Erkki", 3)
        taip = str(type(val[0])).replace("<class '", "").replace("'>", "")
        self.assertTrue(
            type(val[0]) == type(ttt),
            f"Kon suoritetaan{koodi}palutetun listan alkion tyypin pitäisi olla Tehtava, nyt sen tyyppi on {taip}"
        )
Esempio n. 4
0
    def test_5_metodi_merkkaa_valmiiksi(self):
        from src.koodi import Tehtava
        koodi = """
t = Tehtava("koodaa hello world", "Erkki", 3)
t.merkkaa_valmiiksi() 
"""
        t = Tehtava("koodaa hello world", "Erkki", 3)
        try:
            t.merkkaa_valmiiksi()
        except Exception as e:
            self.fail(
                f'Koodin {koodi}suoritus aiheutti virheen\n{e}\nOnhan metodi määritelty?'
            )

        koodi = """
t = Tehtava("koodaa hello world", "Erkki", 3)
t.merkkaa_valmiiksi()
t.on_valmis() 
"""

        val = t.on_valmis()
        self.assertTrue(
            val,
            f"Kon suoritetaan{koodi}paluuarvon pitäisi olla False, nyt se on {val}"
        )
Esempio n. 5
0
    def test_4_metodi_on_valmis(self):
        from src.koodi import Tehtava
        koodi = """
t = Tehtava("koodaa hello world", "Erkki", 3)
t.on_valmis() 
"""
        t = Tehtava("koodaa hello world", "Erkki", 3)
        try:
            val = t.on_valmis()
        except Exception as e:
            self.fail(
                f'Koodin {koodi}suoritus aiheutti virheen\n{e}\nOnhan metodi määritelty?'
            )
        taip = str(type(val)).replace("<class '", "").replace("'>", "")
        self.assertTrue(
            type(val) == type(True),
            f"Kon suoritetaan{koodi}paluuarvon pitäisi olla totuusarvo, nyt sen tyyppi on {taip}"
        )
        self.assertFalse(
            val,
            f"Kon suoritetaan{koodi}paluuarvon pitäisi olla False, nyt se on {val}"
        )
Esempio n. 6
0
    def test3_id(self):
        try:
            from src.koodi import Tehtava
            t1 = Tehtava("koodaa hello world", "Erkki", 3)
            t2 = Tehtava("koodaa facebook", "Erkki", 4)
            t3 = Tehtava("ohjelmoi mobiilipeli", "Erkki", 5)
        except Exception as e:
            self.assertTrue(
                False,
                'Luokan Tavara konstuktorin kutsuminen arvoilla Tehtava("koodaa hello world", "Erkki", 3)'
                +
                f' palautti virheen: {e}\nVarmista että konstruktori on määritelty oikein'
            )

        try:
            koodi = """
t1 = Tehtava("koodaa hello world", "Erkki", 3)
t2 = Tehtava("koodaa facebook", "Erkki", 4)
t3 = Tehtava("ohjelmoi mobiilipeli", "Erkki", 5)
"""
            id1 = t1.id
            id2 = t2.id
            id3 = t3.id
        except Exception as e:
            self.fail(f"Koodin {koodi}suoritus aiheuttaa virheen {e}")
        odotettu = "Erkki"
        self.assertTrue(
            id1 != id2,
            f"Kun suoritetaan {koodi}kaikkien tehtävien id-kentillä pitäisi olla eri arvot. Nyt arvot ovat {id1}, {id2} ja {id2}"
        )
        self.assertTrue(
            id1 != id3,
            f"Kun suoritetaan {koodi}kaikkien tehtävien id-kentillä pitäisi olla eri arvot. Nyt arvot ovat {id1}, {id2} ja {id2}"
        )
        self.assertTrue(
            id2 != id3,
            f"Kun suoritetaan {koodi}kaikkien tehtävien id-kentillä pitäisi olla eri arvot. Nyt arvot ovat {id1}, {id2} ja {id2}"
        )
    def test_4_valmiit(self):
        reload_module(self.module)
        from src.koodi import Tilauskirja, Tehtava

        koodi = """
t = Tilauskirja()
t.ei_valmiit_tilaukset()
"""
        t = Tilauskirja()
        try:
            t.valmiit_tilaukset()
        except Exception as e:
            self.fail(
                f'Koodin {koodi}suoritus aiheutti virheen\n{e}\nOnhan metodi valmiit_tilaukset(self) määritelty?'
            )

        koodi = """
t = Tilauskirja()
t.lisaa_tilaus("koodaa webbikauppa", "Antti", 10)
t.merkkaa_valmiiksi(1)
t.valmiit_tilaukset()
"""
        t = Tilauskirja()
        t.lisaa_tilaus("koodaa webbikauppa", "Antti", 10)

        til = t.kaikki_tilaukset()
        id1 = til[0].id

        try:
            t.merkkaa_valmiiksi(id1)
        except Exception as e:
            self.fail(
                f'Koodin {koodi}suoritus aiheutti virheen\n{e}\nOnhan metodi merkkaa_valmiiksi(self, id: int) määritelty?'
            )

        try:
            val = t.valmiit_tilaukset()
        except Exception as e:
            self.fail(
                f'Koodin {koodi}suoritus aiheutti virheen\n{e}\nOnhan metodi ei_valmiit_tilaukset(self) määritelty?'
            )

        taip = str(type(val)).replace("<class '", "").replace("'>", "")
        self.assertTrue(
            type(val) == type([]),
            f"Kon suoritetaan{koodi}paluuarvon pitäisi olla lista, nyt sen tyyppi on {taip}"
        )
        odotettu = 1
        self.assertTrue(
            len(val) == odotettu,
            f"Kun suoritetaan {koodi}\npitäisi palauttaa lista, jonka pituus on {odotettu}, listan pituus oli {len(val)}"
        )

        ttt = Tehtava("koodaa hello world", "Erkki", 3)
        taip = str(type(val[0])).replace("<class '", "").replace("'>", "")
        self.assertTrue(
            type(val[0]) == type(ttt),
            f"Kon suoritetaan{koodi}palutetun listan alkion tyypin pitäisi olla Tehtava, nyt sen tyyppi on {taip}"
        )

        odotettu = 1
        self.assertTrue(
            len(val) == odotettu,
            f"Kun suoritetaan {koodi}\npitäisi palauttaa lista, jonka pituus on {odotettu}, listan pituus oli {len(val)}"
        )

        t1 = ("koodaa webbikauppa", "Antti", 10, True)
        all_ok = ook(val, [t1])

        odotettu = s([tt(t1)])

        self.assertTrue(
            all_ok,
            f"Kun suoritetaan {koodi}\npitäisi palauttaa lista, jolta löytyvät seuraavat tehtävät\n{odotettu}\nnyt palautettiin\n{ss(val)}"
        )

        koodi = """
t = Tilauskirja()
t.lisaa_tilaus("koodaa webbikauppa", "Antti", 10)
t.lisaa_tilaus("tee mobiilipeli", "Erkki", 5)
t.lisaa_tilaus("koodaa parempi facebook", "joona", 5000)
t.merkkaa_valmiiksi(1)
t.merkkaa_valmiiksi(2)
t.valmiit_tilaukset()
"""
        t = Tilauskirja()
        t.lisaa_tilaus("koodaa webbikauppa", "Antti", 10)
        t.lisaa_tilaus("tee mobiilipeli", "Erkki", 5)
        t.lisaa_tilaus("koodaa parempi facebook", "joona", 5000)

        til = t.kaikki_tilaukset()
        id1 = til[0].id
        id2 = til[1].id

        try:
            t.merkkaa_valmiiksi(id1)
            t.merkkaa_valmiiksi(id2)
        except Exception as e:
            self.fail(
                f'Koodin {koodi}suoritus aiheutti virheen\n{e}\nOnhan metodi merkkaa_valmiiksi(self, id: int) määritelty?'
            )

        try:
            val = t.valmiit_tilaukset()
        except Exception as e:
            self.fail(
                f'Koodin {koodi}suoritus aiheutti virheen\n{e}\nOnhan metodi ei_valmiit_tilaukset(self) määritelty?'
            )

        odotettu = 2
        self.assertTrue(
            len(val) == odotettu,
            f"Kun suoritetaan {koodi}\npitäisi palauttaa lista, jonka pituus on {odotettu}, listan pituus oli {len(val)}"
        )

        t1 = ("koodaa webbikauppa", "Antti", 10, True)
        t2 = ("tee mobiilipeli", "Erkki", 5, True)

        all_ok = ook(val, [t1, t2])

        odotettu = s([tt(t1), tt(t1)])

        self.assertTrue(
            all_ok,
            f"Kun suoritetaan {koodi}\npitäisi palauttaa lista, jolta löytyvät seuraavat tehtävät\n{odotettu}\nnyt palautettiin\n{ss(val)}"
        )