fork download
  1. # Pruebas de unidad - Marcadores (c) 2024 Baltasar MIT License <baltasarq@gmail.com>
  2.  
  3.  
  4. import unittest
  5.  
  6.  
  7. class Marcadores:
  8. def __init__(self):
  9. self._marcs = {}
  10.  
  11. @property
  12. def num(self):
  13. return len(self._marcs)
  14.  
  15. def inserta(self, nombre, url):
  16. self._marcs[nombre] = url
  17.  
  18. def get(self, nombre):
  19. return self._marcs.get(nombre)
  20.  
  21. def contiene(self, nombre):
  22. return self.get(nombre) != None
  23.  
  24. @property
  25. def nombres(self):
  26. return self._marcs.keys()
  27.  
  28. @property
  29. def todos(self):
  30. return self._marcs.items()
  31.  
  32.  
  33. class TestMarcadores(unittest.TestCase):
  34. def setUp(self):
  35. self._marcs = Marcadores()
  36. self._nombres = ["Google", "Microsoft", "Amazon"]
  37. self._no_nombres = ["eBay", "Wallapop", "OSNews"]
  38. self._urls = ["www.google.com", "www.microsoft.com", "www.amazon.com"]
  39.  
  40. def test_vacio(self):
  41. self.assertEqual(0, self._marcs.num)
  42.  
  43. def test_inserta_get(self):
  44. for i, nombre in enumerate(self._nombres):
  45. self._marcs.inserta(nombre, self._urls[i])
  46.  
  47. self.assertEqual(len(self._nombres), self._marcs.num)
  48.  
  49. for i, nombre in enumerate(self._nombres):
  50. self.assertEqual(self._urls[i], self._marcs.get(nombre))
  51.  
  52. for no_nombre in self._no_nombres:
  53. self.assertEqual(None, self._marcs.get(no_nombre))
  54.  
  55. def test_contiene(self):
  56. for i, nombre in enumerate(self._nombres):
  57. self._marcs.inserta(nombre, self._urls[i])
  58.  
  59. self.assertEqual(len(self._nombres), self._marcs.num)
  60.  
  61. for nombre in self._nombres:
  62. self.assertTrue(self._marcs.contiene(nombre))
  63.  
  64. for no_nombre in self._no_nombres:
  65. self.assertFalse(self._marcs.contiene(no_nombre))
  66.  
  67. def test_get_nombres(self):
  68. for i, nombre in enumerate(self._nombres):
  69. self._marcs.inserta(nombre, self._urls[i])
  70.  
  71. self.assertEqual(len(self._nombres), self._marcs.num)
  72. self.assertEqual(self._nombres, list(self._marcs.nombres))
  73.  
  74. for i, nombre in enumerate(self._marcs.nombres):
  75. self.assertEqual(self._marcs.get(nombre), self._urls[i])
  76.  
  77. def test_get_todos(self):
  78. for i, nombre in enumerate(self._nombres):
  79. self._marcs.inserta(nombre, self._urls[i])
  80.  
  81. self.assertEqual(len(self._nombres), len(self._marcs.todos))
  82.  
  83. for i, pair in enumerate(self._marcs.todos):
  84. self.assertEqual(self._urls[i], pair[1])
  85. self.assertEqual(self._nombres[i], pair[0])
  86.  
  87.  
  88. if __name__ == "__main__":
  89. unittest.main()
  90.  
Success #stdin #stdout #stderr 0.05s 11700KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
.....
----------------------------------------------------------------------
Ran 5 tests in 0.000s

OK