test_manage.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. # -*- coding: utf-8 -*-
  2. # (c) Nelen & Schuurmans
  3. from unittest import mock
  4. import pytest
  5. from clean_python import Filter, Manage, RootEntity
  6. class User(RootEntity):
  7. name: str
  8. class ManageUser(Manage[User]):
  9. def __init__(self):
  10. self.repo = mock.AsyncMock()
  11. @pytest.fixture
  12. def manage_user():
  13. return ManageUser()
  14. async def test_retrieve(manage_user):
  15. result = await manage_user.retrieve(2)
  16. manage_user.repo.get.assert_awaited_with(2)
  17. assert result is manage_user.repo.get.return_value
  18. async def test_create(manage_user):
  19. result = await manage_user.create({"name": "piet"})
  20. manage_user.repo.add.assert_awaited_once_with({"name": "piet"})
  21. assert result is manage_user.repo.add.return_value
  22. async def test_update(manage_user):
  23. manage_user.repo.get.return_value = User.create(id=2, name="piet")
  24. result = await manage_user.update(2, {"name": "jan"})
  25. manage_user.repo.update.assert_awaited_once_with(2, {"name": "jan"})
  26. assert result is manage_user.repo.update.return_value
  27. async def test_destroy(manage_user):
  28. result = await manage_user.destroy(2)
  29. manage_user.repo.remove.assert_awaited_with(2)
  30. assert result is manage_user.repo.remove.return_value
  31. async def test_list(manage_user):
  32. result = await manage_user.list()
  33. manage_user.repo.all.assert_awaited_once()
  34. assert result is manage_user.repo.all.return_value
  35. async def test_by(manage_user):
  36. result = await manage_user.by("name", "piet")
  37. manage_user.repo.by.assert_awaited_with("name", "piet", params=None)
  38. assert result is manage_user.repo.by.return_value
  39. async def test_filter(manage_user):
  40. filters = [Filter(field="x", values=[1])]
  41. result = await manage_user.filter(filters)
  42. manage_user.repo.filter.assert_awaited_once_with(filters, params=None)
  43. assert result is manage_user.repo.filter.return_value
  44. async def test_count(manage_user):
  45. filters = [Filter(field="x", values=[1])]
  46. result = await manage_user.count(filters)
  47. manage_user.repo.count.assert_awaited_once_with(filters)
  48. assert result is manage_user.repo.count.return_value
  49. async def test_exists(manage_user):
  50. filters = [Filter(field="x", values=[1])]
  51. result = await manage_user.exists(filters)
  52. manage_user.repo.exists.assert_awaited_once_with(filters)
  53. assert result is manage_user.repo.exists.return_value