feat: show generate elapsed timings
This commit is contained in:
+70
-3
@@ -1628,9 +1628,15 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
self.assertEqual("标题 0/0", tab.title_progress_label.text())
|
||||
self.assertEqual("图片 0/0", tab.cover_progress_label.text())
|
||||
self.assertEqual("失败 0", tab.failed_progress_label.text())
|
||||
self.assertTrue(tab.failed_progress_label.isHidden())
|
||||
self.assertEqual("generateTitleElapsedLabel", tab.title_elapsed_label.objectName())
|
||||
self.assertEqual("generateCoverElapsedLabel", tab.cover_elapsed_label.objectName())
|
||||
self.assertEqual("生标题用时 0 秒", tab.title_elapsed_label.text())
|
||||
self.assertEqual("生图用时 0 秒", tab.cover_elapsed_label.text())
|
||||
self.assertEqual(tab.title_elapsed_label.width(), tab.cover_elapsed_label.width())
|
||||
self.assertEqual("generateCmhubBalanceLabel", tab.cmhub_balance_label.objectName())
|
||||
self.assertEqual("cmhub余额:未获取", tab.cmhub_balance_label.text())
|
||||
self.assertFalse(tab.cmhub_balance_label.isHidden())
|
||||
self.assertTrue(tab.cmhub_balance_label.isHidden())
|
||||
self.assertEqual(0, tab.title_progress_bar.value())
|
||||
self.assertEqual(0, tab.cover_progress_bar.value())
|
||||
self.assertEqual(1, tab.title_progress_bar.maximum())
|
||||
@@ -1763,7 +1769,67 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
header.sectionSize(5),
|
||||
delta=5,
|
||||
)
|
||||
self.assertGreater(header.sectionSize(4), header.sectionSize(0))
|
||||
self.assertAlmostEqual(
|
||||
header.sectionSize(2),
|
||||
header.sectionSize(3),
|
||||
delta=5,
|
||||
)
|
||||
self.assertLess(header.sectionSize(4), header.sectionSize(1))
|
||||
self.assertGreater(header.sectionSize(2), header.sectionSize(0))
|
||||
|
||||
self.assert_removed(temp_dir)
|
||||
|
||||
def test_generate_elapsed_timer_tracks_title_then_cover(self):
|
||||
with self.make_temp_dir() as temp_dir:
|
||||
tab = GenerateTab(config=self.make_config(temp_dir))
|
||||
self.addCleanup(tab.close)
|
||||
|
||||
self.assertEqual("生标题用时 0 秒", tab.title_elapsed_label.text())
|
||||
self.assertEqual("生图用时 0 秒", tab.cover_elapsed_label.text())
|
||||
self.assertFalse(tab._generate_elapsed_timer.isActive())
|
||||
|
||||
with mock.patch("app.gui.tabs.generate.time.monotonic", return_value=100.0):
|
||||
tab._start_generation_elapsed(title_total=2, cover_total=1)
|
||||
self.assertTrue(tab._generate_elapsed_timer.isActive())
|
||||
|
||||
with mock.patch("app.gui.tabs.generate.time.monotonic", return_value=103.0):
|
||||
tab._refresh_elapsed_labels()
|
||||
self.assertEqual("生标题用时 3 秒", tab.title_elapsed_label.text())
|
||||
self.assertEqual("生图用时 0 秒", tab.cover_elapsed_label.text())
|
||||
|
||||
with mock.patch("app.gui.tabs.generate.time.monotonic", return_value=105.0):
|
||||
tab._sync_generation_elapsed(
|
||||
{
|
||||
"total": 3,
|
||||
"title_total": 2,
|
||||
"title_done": 2,
|
||||
"cover_total": 1,
|
||||
"cover_done": 0,
|
||||
"generate_cover": True,
|
||||
}
|
||||
)
|
||||
self.assertEqual("生标题用时 5 秒", tab.title_elapsed_label.text())
|
||||
self.assertEqual("生图用时 0 秒", tab.cover_elapsed_label.text())
|
||||
|
||||
with mock.patch("app.gui.tabs.generate.time.monotonic", return_value=109.0):
|
||||
tab._refresh_elapsed_labels()
|
||||
self.assertEqual("生标题用时 5 秒", tab.title_elapsed_label.text())
|
||||
self.assertEqual("生图用时 4 秒", tab.cover_elapsed_label.text())
|
||||
|
||||
with mock.patch("app.gui.tabs.generate.time.monotonic", return_value=112.0):
|
||||
tab._finish_generation_elapsed(
|
||||
{
|
||||
"total": 3,
|
||||
"title_total": 2,
|
||||
"title_done": 2,
|
||||
"cover_total": 1,
|
||||
"cover_done": 1,
|
||||
"generate_cover": True,
|
||||
}
|
||||
)
|
||||
self.assertEqual("生标题用时 5 秒", tab.title_elapsed_label.text())
|
||||
self.assertEqual("生图用时 7 秒", tab.cover_elapsed_label.text())
|
||||
self.assertFalse(tab._generate_elapsed_timer.isActive())
|
||||
|
||||
self.assert_removed(temp_dir)
|
||||
|
||||
@@ -1776,7 +1842,7 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
tab = GenerateTab(config=cfg, status_callback=statuses.append)
|
||||
self.addCleanup(tab.close)
|
||||
|
||||
self.assertFalse(tab.cmhub_balance_label.isHidden())
|
||||
self.assertTrue(tab.cmhub_balance_label.isHidden())
|
||||
self.assertEqual("cmhub余额:未获取", tab.cmhub_balance_label.text())
|
||||
|
||||
tab._on_generate_progress(
|
||||
@@ -1791,6 +1857,7 @@ class GuiTests(TempDirMixin, unittest.TestCase):
|
||||
}
|
||||
)
|
||||
self.assertEqual("cmhub余额:88", tab.cmhub_balance_label.text())
|
||||
self.assertTrue(tab.cmhub_balance_label.isHidden())
|
||||
|
||||
with mock.patch("app.gui.QMessageBox.warning") as warning:
|
||||
tab._on_generate_finished(
|
||||
|
||||
Reference in New Issue
Block a user