49601bb4fc
Builds a "Name (detail, detail)" label from a name plus optional details, dropping falsy parts and omitting the parentheses entirely when none remain. Extracted to deduplicate the "filter present parts, join, wrap in parens" idiom that several model display properties share. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
26 lines
834 B
Python
26 lines
834 B
Python
import unittest
|
|
|
|
from common.utils import label_with_details
|
|
|
|
|
|
class LabelWithDetailsTest(unittest.TestCase):
|
|
def test_all_parts_present(self):
|
|
self.assertEqual(
|
|
label_with_details("Mario", "Steam", 2020), "Mario (Steam, 2020)"
|
|
)
|
|
|
|
def test_some_parts_falsy(self):
|
|
self.assertEqual(label_with_details("Mario", None, 2020), "Mario (2020)")
|
|
self.assertEqual(label_with_details("Mario", "Steam", None), "Mario (Steam)")
|
|
|
|
def test_all_parts_falsy(self):
|
|
self.assertEqual(label_with_details("Mario", None, "", 0), "Mario")
|
|
|
|
def test_no_details(self):
|
|
self.assertEqual(label_with_details("Mario"), "Mario")
|
|
|
|
def test_custom_separator(self):
|
|
self.assertEqual(
|
|
label_with_details("Mario", "a", "b", separator=" / "), "Mario (a / b)"
|
|
)
|