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}" )
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}")
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}" )
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}" )
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}" )
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)}" )