Skip to content

Commit 54985f5

Browse files
committed
Write tests
1 parent 77ba0a9 commit 54985f5

File tree

4 files changed

+121
-0
lines changed

4 files changed

+121
-0
lines changed

.coveragerc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[run]
2+
omit = tests/*

pytest.ini

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[pytest]
2+
qt_api=pyqt6

tests/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# This file is needed for the tests be able to run properly

tests/loading_button_test.py

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
import time
2+
from PyQt6.QtCore import QRect
3+
from PyQt6.QtGui import QColor, QPaintEvent
4+
from PyQt6.QtTest import QTest
5+
from pytestqt.qt_compat import qt_api
6+
from src.pyqt_loading_button.loading_button import LoadingButton, AnimationType
7+
8+
9+
def test_initial_values(qtbot):
10+
"""Test initial values after instantiating"""
11+
12+
loading_button = LoadingButton()
13+
qtbot.addWidget(loading_button)
14+
15+
assert loading_button.text() == ''
16+
assert not loading_button.isRunning()
17+
assert loading_button.getAnimationType() == AnimationType.Circle
18+
assert loading_button.getAnimationSpeed() == 2000
19+
assert loading_button.getAnimationWidth() == 15
20+
assert loading_button.getAnimationStrokeWidth() == 3
21+
assert loading_button.getAnimationColor() == QColor(0, 0, 0)
22+
23+
24+
def test_set_text(qtbot):
25+
loading_button = LoadingButton()
26+
qtbot.addWidget(loading_button)
27+
28+
loading_button.setText('Test')
29+
assert loading_button.text() == 'Test'
30+
31+
32+
def test_set_animation_type(qtbot):
33+
loading_button = LoadingButton()
34+
qtbot.addWidget(loading_button)
35+
36+
loading_button.setAnimationType(AnimationType.Dots)
37+
assert loading_button.getAnimationType() == AnimationType.Dots
38+
39+
40+
def test_set_animation_speed(qtbot):
41+
loading_button = LoadingButton()
42+
qtbot.addWidget(loading_button)
43+
44+
loading_button.setAnimationSpeed(1000)
45+
assert loading_button.getAnimationSpeed() == 1000
46+
47+
48+
def test_set_animation_width(qtbot):
49+
loading_button = LoadingButton()
50+
qtbot.addWidget(loading_button)
51+
52+
loading_button.setAnimationWidth(20)
53+
assert loading_button.getAnimationWidth() == 20
54+
55+
56+
def test_set_animation_stroke_width(qtbot):
57+
loading_button = LoadingButton()
58+
qtbot.addWidget(loading_button)
59+
60+
loading_button.setAnimationStrokeWidth(5)
61+
assert loading_button.getAnimationStrokeWidth() == 5
62+
63+
64+
def test_setAnimationColor(qtbot):
65+
loading_button = LoadingButton()
66+
qtbot.addWidget(loading_button)
67+
68+
color = QColor(255, 0, 0)
69+
loading_button.setAnimationColor(color)
70+
assert loading_button.getAnimationColor() == color
71+
72+
73+
def test_click_event_circle(qtbot):
74+
loading_button = LoadingButton()
75+
qtbot.addWidget(loading_button)
76+
77+
def action():
78+
time.sleep(2)
79+
80+
loading_button.setAction(action)
81+
loading_button.setAnimationType(AnimationType.Circle)
82+
loading_button.setAnimationSpeed(1000)
83+
84+
assert not loading_button.isRunning()
85+
86+
loading_button.clicked.emit()
87+
88+
paint_event = QPaintEvent(QRect(0, 0, 0, 0))
89+
qt_api.QtWidgets.QApplication.instance().postEvent(loading_button, paint_event)
90+
assert loading_button.isRunning()
91+
92+
QTest.qWait(2250)
93+
assert not loading_button.isRunning()
94+
95+
96+
def test_click_event_dots(qtbot):
97+
loading_button = LoadingButton()
98+
qtbot.addWidget(loading_button)
99+
100+
def action():
101+
time.sleep(2)
102+
103+
loading_button.setAction(action)
104+
loading_button.setAnimationType(AnimationType.Dots)
105+
loading_button.setAnimationSpeed(1000)
106+
107+
assert not loading_button.isRunning()
108+
109+
loading_button.clicked.emit()
110+
111+
paint_event = QPaintEvent(QRect(0, 0, 0, 0))
112+
qt_api.QtWidgets.QApplication.instance().postEvent(loading_button, paint_event)
113+
assert loading_button.isRunning()
114+
115+
QTest.qWait(2250)
116+
assert not loading_button.isRunning()

0 commit comments

Comments
 (0)