Verify save token chips and preview counter
This commit is contained in:
@@ -2,6 +2,7 @@ import importlib
|
||||
import os
|
||||
import sys
|
||||
import tempfile
|
||||
import time
|
||||
import types
|
||||
import unittest
|
||||
from unittest import mock
|
||||
@@ -151,6 +152,58 @@ class DumasImageNodeTests(unittest.TestCase):
|
||||
saved_name = os.path.basename(FakePILImage.saved_paths[0][0])
|
||||
self.assertEqual(saved_name, "shot_alpha_beta_final_001.png")
|
||||
|
||||
def test_save_image_resolves_date_size_and_batch_tokens(self):
|
||||
node = self.image_nodes.DumasSaveImageNode()
|
||||
image = FakeTensorBatch(width=10, height=12, count=2)
|
||||
fake_now = time.struct_time((2026, 8, 5, 13, 7, 9, 2, 217, -1))
|
||||
|
||||
with mock.patch.object(self.image_nodes.time, "localtime", return_value=fake_now):
|
||||
node.save_images(
|
||||
images=image,
|
||||
folder=self.temp_dir,
|
||||
pattern="asset_%date:yyyy-MM-dd%_%date:hh-mm-ss%_%width%x%height%_%batch_num%_%counter%",
|
||||
format="png",
|
||||
quality=100,
|
||||
embed_workflow=False,
|
||||
save_on_run=True,
|
||||
)
|
||||
|
||||
saved_names = [os.path.basename(path) for path, _args, _kwargs in FakePILImage.saved_paths]
|
||||
self.assertEqual(
|
||||
saved_names,
|
||||
[
|
||||
"asset_2026-08-05_13-07-09_10x12_0_001.png",
|
||||
"asset_2026-08-05_13-07-09_10x12_1_001.png",
|
||||
],
|
||||
)
|
||||
|
||||
def test_save_image_counter_increments_for_existing_files(self):
|
||||
node = self.image_nodes.DumasSaveImageNode()
|
||||
image = FakeTensorBatch()
|
||||
|
||||
node.save_images(
|
||||
images=image,
|
||||
folder=self.temp_dir,
|
||||
pattern="counter_%counter%",
|
||||
format="png",
|
||||
quality=100,
|
||||
embed_workflow=False,
|
||||
save_on_run=True,
|
||||
)
|
||||
open(FakePILImage.saved_paths[0][0], "a", encoding="utf-8").close()
|
||||
node.save_images(
|
||||
images=image,
|
||||
folder=self.temp_dir,
|
||||
pattern="counter_%counter%",
|
||||
format="png",
|
||||
quality=100,
|
||||
embed_workflow=False,
|
||||
save_on_run=True,
|
||||
)
|
||||
|
||||
saved_names = [os.path.basename(path) for path, _args, _kwargs in FakePILImage.saved_paths]
|
||||
self.assertEqual(saved_names, ["counter_001.png", "counter_002.png"])
|
||||
|
||||
def test_save_image_returns_ui_entries_for_output_folder(self):
|
||||
node = self.image_nodes.DumasSaveImageNode()
|
||||
image = FakeTensorBatch()
|
||||
|
||||
Reference in New Issue
Block a user