Нет описания

test_client_db.py 4.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. # IRIS Source Code
  2. # Copyright (C) 2021 - Airbus CyberSecurity (SAS)
  3. # ir@cyberactionlab.net
  4. #
  5. # This program is free software; you can redistribute it and/or
  6. # modify it under the terms of the GNU Lesser General Public
  7. # License as published by the Free Software Foundation; either
  8. # version 3 of the License, or (at your option) any later version.
  9. #
  10. # This program is distributed in the hope that it will be useful,
  11. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  13. # Lesser General Public License for more details.
  14. #
  15. # You should have received a copy of the GNU Lesser General Public License
  16. # along with this program; if not, write to the Free Software Foundation,
  17. # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  18. from unittest import TestCase
  19. from app.datamgmt.client.client_db import get_client, get_client_list, update_client, delete_client
  20. from app.datamgmt.exceptions.ElementExceptions import ElementNotFoundException
  21. from tests.clean_database import clean_db
  22. from tests.test_helper import TestHelper
  23. class TestClientDB(TestCase):
  24. def setUp(self) -> None:
  25. self._test_helper = TestHelper()
  26. clean_db()
  27. def tearDown(self) -> None:
  28. clean_db()
  29. # CREATE CLIENT
  30. def test_create_client_should_return_client_object(self):
  31. new_client = self._test_helper.create_client("new_client_name")
  32. self.assertIsNotNone(new_client)
  33. self.assertEqual("new_client_name", new_client.name)
  34. # GET CLIENT
  35. def test_get_client_should_return_client_object(self):
  36. # Create 2 clients
  37. client1 = self._test_helper.create_client()
  38. self._test_helper.create_client()
  39. # Get client1
  40. returned_client = get_client(client1.client_id)
  41. self.assertIsNotNone(returned_client)
  42. self.assertEqual(returned_client.client_id, client1.client_id)
  43. # GET CLIENT LIST
  44. def test_get_client_list_should_return_list_of_client_object(self):
  45. # Create 3 clients
  46. client1 = self._test_helper.create_client()
  47. client2 = self._test_helper.create_client()
  48. client3 = self._test_helper.create_client()
  49. # Get client list
  50. returned_client_list = get_client_list()
  51. self.assertEqual(3, len(returned_client_list))
  52. returned_client_id_list = [el['client_id'] for el in returned_client_list]
  53. self.assertTrue(client1.client_id in returned_client_id_list)
  54. self.assertTrue(client2.client_id in returned_client_id_list)
  55. self.assertTrue(client3.client_id in returned_client_id_list)
  56. def test_get_client_list_should_return_list_of_client_object_for_api(self):
  57. # Create 3 clients
  58. client1 = self._test_helper.create_client()
  59. client2 = self._test_helper.create_client()
  60. client3 = self._test_helper.create_client()
  61. # Get client list
  62. returned_client_list = get_client_list(True)
  63. self.assertEqual(3, len(returned_client_list))
  64. returned_client_id_list = [client_id for _, client_id in returned_client_list]
  65. self.assertTrue(client1.client_id in returned_client_id_list)
  66. self.assertTrue(client2.client_id in returned_client_id_list)
  67. self.assertTrue(client3.client_id in returned_client_id_list)
  68. # UPDATE CLIENT
  69. def test_update_client_should_correctly_modify_client(self):
  70. client1 = self._test_helper.create_client()
  71. new_name = 'updated name'
  72. update_client(client1.client_id, new_name)
  73. returned_client = get_client(client1.client_id)
  74. self.assertEqual(returned_client.name, new_name)
  75. def test_update_client_should_raise_error_if_client_id_not_found(self):
  76. with self.assertRaises(ElementNotFoundException):
  77. update_client(0, 'new_name')
  78. # DELETE CLIENT
  79. def test_delete_client_should_correctly_remove_client(self):
  80. client1 = self._test_helper.create_client()
  81. client2 = self._test_helper.create_client()
  82. delete_client(client1.client_id)
  83. client_list = get_client_list()
  84. self.assertEqual(1, len(client_list))
  85. self.assertEqual(client2.client_id, client_list[0]['client_id'])
  86. def test_delete_client_should_raise_error_if_client_id_not_found(self):
  87. with self.assertRaises(ElementNotFoundException):
  88. delete_client(0)