Skip to content

Commit 28abe1b

Browse files
authored
Merge pull request #7824 from idiegorojas/main
#13 - Python
2 parents ca89741 + e2d34d3 commit 28abe1b

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
def sum(a, b):
2+
return a + b
3+
4+
data = {
5+
'name': 'Diego',
6+
'age': 28,
7+
'birth_day': '1996-11-08',
8+
'programming_languages': ['Python', 'Javascript', 'Swift']
9+
}
10+
11+
import unittest
12+
from idiegorojas import sum
13+
14+
'''
15+
* unittest.TestCase: Es la clase base para crear pruebas. Cada método que comienza con test_ es una prueba individual.
16+
* self.assertEqual: Es un método que verifica si dos valores son iguales. Si no lo son, la prueba falla.
17+
* unittest.main(): Ejecuta todas las pruebas definidas en la clase.
18+
'''
19+
20+
21+
class TestSumar(unittest.TestCase):
22+
def test_sumar_numeros_positivos(self):
23+
self.assertEqual(sum(2, 3), 5)
24+
self.assertEqual(sum(-1, -1), -2)
25+
self.assertEqual(sum(0, 0), 0)
26+
27+
def test_sumar_tipo(self):
28+
with self.assertRaises(ValueError):
29+
sum("5", 7)
30+
with self.assertRaises(ValueError):
31+
sum(5, "7")
32+
with self.assertRaises(ValueError):
33+
sum("5", "7")
34+
with self.assertRaises(ValueError):
35+
sum("a", 7)
36+
with self.assertRaises(ValueError):
37+
sum(None, 7)
38+
39+
40+
if __name__ == '__main__':
41+
unittest.main()
42+
43+
44+
# Extra
45+
46+
import unittest
47+
from idiegorojas import data
48+
49+
class TestDict(unittest.TestCase):
50+
51+
def test_existe_campos(self):
52+
campos_requerido = ['name', 'age', 'birth_day', 'programming_languages']
53+
for field in campos_requerido:
54+
self.assertIn(field, data)
55+
56+
def test_tipo_dato_correcto(self):
57+
self.assertIsInstance(data['name'], str)
58+
self.assertIsInstance(data['age'], int)
59+
self.assertIsInstance(data['birth_day'], str)
60+
self.assertIsInstance(data['programming_languages'], list)
61+
62+
def test_valores_correctos(self):
63+
self.assertEqual(data['name'], 'Diego')
64+
self.assertEqual(data['age'], 28)
65+
self.assertEqual(data['birth_day'], '1996-11-08')
66+
self.assertIn('Python', data['programming_languages'])
67+
self.assertIn('Javascript', data['programming_languages'])
68+
self.assertIn('Swift', data['programming_languages'])
69+
70+
71+
if __name__ =='__main__':
72+
unittest.main()

0 commit comments

Comments
 (0)