def test_syotteen_tulostus_1(self): with patch('builtins.input', return_value='Pekka'): reload_module(self.module) output = get_stdout() self.assertTrue(len(output) > 0, "Ohjelmasi ei tulosta mitään!") assert_ignore_ws(self, output, '!Pekka!Pekka!', 'Ohjelma ei toimi oikein syötteellä: Pekka\n')
def test_kerrottuna_viidella(self): with patch('builtins.input', return_value='5'): reload_module(self.module) output = get_stdout() expected = 'Kun kerrotaan 5 luvulla 5, saadaan 25' assert_ignore_ws(self, output, expected, 'Ohjelmasi tulostus ei ole oikea syötteellä 5, ')
def test_muita_nimia3(self): testset = [ ['Venla Ruuska', '2013', '7'], ] for nimi, syntvuosi, ika in testset: with patch('builtins.input', side_effect=[nimi, syntvuosi]): reload_module(self.module) output = get_stdout() e = f"Moi {nimi}, olet {ika} vuotta vanha vuoden 2020 lopussa" assert_ignore_ws(self, output, e, f"Kun syöte on {nimi} {syntvuosi}\n")
def test_kerrottuna_kolmella(self): with patch('builtins.input', return_value='3'): reload_module(self.module) output = get_stdout() self.assertTrue(len(output) > 0, 'Ohjelmasi ei tulosta mitään') self.assertTrue( '15' in output, 'Tulostus väärin syötteellä 3, ohjelmasi tulostaa\n' + output) expected = 'Kun kerrotaan 3 luvulla 5, saadaan 15' assert_ignore_ws(self, output, expected, 'Ohjelmasi tulostus ei ole oikea syötteellä 3, ')
def test_keijo_keksitty(self): with patch('builtins.input', side_effect=[ 'Keijo Keksitty', '1990', AssertionError("Syötettä pyydetään liian monta kertaa.") ]) as prompt: reload_module(self.module) output = get_stdout() self.assertTrue(len(output) > 0, 'Ohjelmasi ei tulosta mitään') e = 'Moi Keijo Keksitty, olet 30 vuotta vanha vuoden 2020 lopussa' assert_ignore_ws(self, output, e, "Kun syöte on Keijo Keksitty 1990\n")
def test_content(self): reload_module(self.module) out = get_stdout() self.assertTrue(len(out) > 0, 'Koodisi ei tulosta mitään') split_output = sanitize(out).split('\n') self.assertFalse( len(split_output) != 3, 'Tulostuksessa odotettiin olevan {0} riviä, ohjelmasi tulostaa tällä hetkellä {1} riviä.' .format(3, len(split_output))) assert_ignore_ws(self, split_output[0], 'Ukko Nooa, Ukko Nooa oli kunnon mies.', 'Ensimmäisen rivin tulostus väärin. ') assert_ignore_ws(self, split_output[1], 'Kun hän meni saunaan, laittoi laukun naulaan.', 'Toisen rivin tulostus väärin. ') assert_ignore_ws(self, split_output[2], 'Ukko Nooa, Ukko Nooa oli kunnon mies.', 'Kolmannen rivin tulostus väärin. ')
def test_syotteen_tulostus_2(self): with patch('builtins.input', return_value='Ada'): reload_module(self.module) output = get_stdout() assert_ignore_ws(self, output, '!Ada!Ada!', 'Ohjelma ei toimi oikein syötteellä: Ada\n')