TestOptionalManager.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import hashlib
  2. import os
  3. import copy
  4. import pytest
  5. from OptionalManager import OptionalManagerPlugin
  6. from util import helper
  7. @pytest.mark.usefixtures("resetSettings")
  8. class TestOptionalManager:
  9. def testDbFill(self, site):
  10. contents = site.content_manager.contents
  11. assert len(site.content_manager.hashfield) > 0
  12. assert contents.db.execute("SELECT COUNT(*) FROM file_optional WHERE is_downloaded = 1").fetchone()[0] == len(site.content_manager.hashfield)
  13. def testSetContent(self, site):
  14. contents = site.content_manager.contents
  15. # Add new file
  16. new_content = copy.deepcopy(contents["content.json"])
  17. new_content["files_optional"]["testfile"] = {
  18. "size": 1234,
  19. "sha512": "aaaabbbbcccc"
  20. }
  21. num_optional_files_before = contents.db.execute("SELECT COUNT(*) FROM file_optional").fetchone()[0]
  22. contents["content.json"] = new_content
  23. assert contents.db.execute("SELECT COUNT(*) FROM file_optional").fetchone()[0] > num_optional_files_before
  24. # Remove file
  25. new_content = copy.deepcopy(contents["content.json"])
  26. del new_content["files_optional"]["testfile"]
  27. num_optional_files_before = contents.db.execute("SELECT COUNT(*) FROM file_optional").fetchone()[0]
  28. contents["content.json"] = new_content
  29. assert contents.db.execute("SELECT COUNT(*) FROM file_optional").fetchone()[0] < num_optional_files_before
  30. def testDeleteContent(self, site):
  31. contents = site.content_manager.contents
  32. num_optional_files_before = contents.db.execute("SELECT COUNT(*) FROM file_optional").fetchone()[0]
  33. del contents["content.json"]
  34. assert contents.db.execute("SELECT COUNT(*) FROM file_optional").fetchone()[0] < num_optional_files_before