test_utils.py 933 B

12345678910111213141516171819202122232425
  1. #!/usr/bin/env pytest
  2. # -*- coding: UTF-8 -*-
  3. import unittest
  4. from webserver.utils import compare_books_by_rating_or_id
  5. class TestUtils(unittest.TestCase):
  6. def test_compare_by_rating_or_id(self):
  7. cases = [
  8. [1, {"id": 2}, {"id": 1}],
  9. [1, {"rating": 2}, {"rating": None}],
  10. [1, {"rating": 2}, {"rating": 0}],
  11. [1, {"rating": 2}, {}],
  12. [1, {"rating": 2}, {"id": 2}],
  13. [1, {"rating": 2, "id": 2}, {"rating": 2, "id": 1}],
  14. [1, {"rating": 0, "id": 2}, {"rating": 0, "id": 1}],
  15. [1, {"rating": 0, "id": 2}, {"rating": None, "id": 1}],
  16. [1, {"rating": 0, "id": 2}, {"id": 1}],
  17. ]
  18. for val, a, b in cases:
  19. self.assertEqual(val, compare_books_by_rating_or_id(a, b), "compare %s > %s" % (a, b))
  20. self.assertEqual(-1 * val, compare_books_by_rating_or_id(b, a), "compare %s > %s" % (b, a))