test_ctk_toplevel.py 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. import customtkinter
  2. class TestCTkToplevel():
  3. def __init__(self):
  4. self.root_ctk = customtkinter.CTk()
  5. self.root_ctk.title("TestCTkToplevel")
  6. self.ctk_toplevel = customtkinter.CTkToplevel()
  7. self.ctk_toplevel.title("TestCTkToplevel")
  8. def clean(self):
  9. self.root_ctk.quit()
  10. self.ctk_toplevel.withdraw()
  11. self.root_ctk.withdraw()
  12. def main(self):
  13. self.execute_tests()
  14. self.root_ctk.mainloop()
  15. def execute_tests(self):
  16. print("\nTestCTkToplevel started:")
  17. start_time = 0
  18. self.root_ctk.after(start_time, self.test_geometry)
  19. start_time += 100
  20. self.root_ctk.after(start_time, self.test_scaling)
  21. start_time += 100
  22. self.root_ctk.after(start_time, self.test_configure)
  23. start_time += 100
  24. self.root_ctk.after(start_time, self.test_appearance_mode)
  25. start_time += 100
  26. self.root_ctk.after(start_time, self.test_iconify)
  27. start_time += 1500
  28. self.root_ctk.after(start_time, self.clean)
  29. def test_geometry(self):
  30. print(" -> test_geometry: ", end="")
  31. self.ctk_toplevel.geometry("200x300+200+300")
  32. assert self.ctk_toplevel.current_width == 200 and self.ctk_toplevel.current_height == 300
  33. self.ctk_toplevel.minsize(300, 400)
  34. assert self.ctk_toplevel.current_width == 300 and self.ctk_toplevel.current_height == 400
  35. assert self.ctk_toplevel.min_width == 300 and self.ctk_toplevel.min_height == 400
  36. self.ctk_toplevel.maxsize(400, 500)
  37. self.ctk_toplevel.geometry("600x600")
  38. assert self.ctk_toplevel.current_width == 400 and self.ctk_toplevel.current_height == 500
  39. assert self.ctk_toplevel.max_width == 400 and self.ctk_toplevel.max_height == 500
  40. self.ctk_toplevel.maxsize(1000, 1000)
  41. self.ctk_toplevel.geometry("300x400")
  42. self.ctk_toplevel.resizable(False, False)
  43. self.ctk_toplevel.geometry("500x600")
  44. assert self.ctk_toplevel.current_width == 500 and self.ctk_toplevel.current_height == 600
  45. print("successful")
  46. def test_scaling(self):
  47. print(" -> test_scaling: ", end="")
  48. customtkinter.ScalingTracker.set_window_scaling(1.5)
  49. self.ctk_toplevel.geometry("300x400")
  50. assert self.ctk_toplevel.current_width == 300 and self.ctk_toplevel.current_height == 400
  51. assert self.root_ctk.window_scaling == 1.5 * customtkinter.ScalingTracker.get_window_dpi_scaling(self.root_ctk)
  52. self.ctk_toplevel.maxsize(400, 500)
  53. self.ctk_toplevel.geometry("500x500")
  54. assert self.ctk_toplevel.current_width == 400 and self.ctk_toplevel.current_height == 500
  55. customtkinter.ScalingTracker.set_window_scaling(1)
  56. assert self.ctk_toplevel.current_width == 400 and self.ctk_toplevel.current_height == 500
  57. print("successful")
  58. def test_configure(self):
  59. print(" -> test_configure: ", end="")
  60. self.ctk_toplevel.configure(bg="white")
  61. assert self.ctk_toplevel.fg_color == "white"
  62. self.ctk_toplevel.configure(background="red")
  63. assert self.ctk_toplevel.fg_color == "red"
  64. assert self.ctk_toplevel.cget("bg") == "red"
  65. self.ctk_toplevel.config(fg_color=("green", "#FFFFFF"))
  66. assert self.ctk_toplevel.fg_color == ("green", "#FFFFFF")
  67. print("successful")
  68. def test_appearance_mode(self):
  69. print(" -> test_appearance_mode: ", end="")
  70. customtkinter.set_appearance_mode("light")
  71. self.ctk_toplevel.config(fg_color=("green", "#FFFFFF"))
  72. assert self.ctk_toplevel.cget("bg") == "green"
  73. customtkinter.set_appearance_mode("dark")
  74. assert self.ctk_toplevel.cget("bg") == "#FFFFFF"
  75. print("successful")
  76. def test_iconify(self):
  77. print(" -> test_iconify: ", end="")
  78. self.ctk_toplevel.iconify()
  79. self.ctk_toplevel.after(100, self.ctk_toplevel.deiconify)
  80. print("successful")
  81. if __name__ == "__main__":
  82. TestCTkToplevel()