002-users.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import pathlib
  2. current = pathlib.Path(__file__).parent
  3. root = current.parent
  4. import sys
  5. sys.path.append(str(root))
  6. import assets
  7. import sqlmodel
  8. builder = assets.user_builder()
  9. builder.nick = "test1"
  10. builder.set_password("qwerty")
  11. test1 = builder.result
  12. def drop_database() -> None:
  13. db = pathlib.Path("./002-test.db")
  14. if db.is_file():
  15. db.unlink()
  16. drop_database()
  17. connection = sqlmodel.create_engine("sqlite:///002-test.db")
  18. sqlmodel.SQLModel.metadata.create_all(connection)
  19. with assets.user_loader(connection) as loader:
  20. print("Register: " + str(loader.register(test1)))
  21. logged = loader.login("test1", "qwerty")
  22. print("Logged user apikey: " + str(logged.apikey))
  23. bad_psk = loader.login("test1", "qweee")
  24. print("Bad password user: " + str(bad_psk))
  25. logged.apikey = assets.apikey()
  26. loader.save(logged)
  27. print("Logged user apikey after change: " + str(logged.apikey))
  28. print("Change password")
  29. crypto = logged.key("qwerty").decrypted
  30. helper = assets.user_builder(logged)
  31. helper.set_password("QWERTY", "qwerty")
  32. loader.save(helper.result)
  33. print("Saved with new password, trying to login.")
  34. logged = loader.login("test1", "QWERTY")
  35. print("Result:" + str(logged))
  36. if logged.key("QWERTY").decrypted == crypto:
  37. print("Crypto key recrypting work.")
  38. else:
  39. print("Crypto key recrypting NOT WORK.")
  40. drop_database()