"""Tests for concept.""" from ..schema import SignalInputType from .concept import DRAFT_MAIN, Concept, Example, draft_examples def test_draft_examples_main() -> None: concept = Concept( namespace='test_namespace', concept_name='test_name', type=SignalInputType.TEXT, data={ '0': Example(id='0', label=True, text='hello'), '1': Example(id='1', label=False, text='world'), }, version=0) assert draft_examples(concept, DRAFT_MAIN) == { '0': Example(id='0', label=True, text='hello'), '1': Example(id='1', label=False, text='world'), } def test_draft_examples_simple_draft() -> None: concept = Concept( namespace='test_namespace', concept_name='test_name', type=SignalInputType.TEXT, data={ '0': Example(id='0', label=True, text='hello'), '1': Example(id='1', label=False, text='world'), '2': Example(id='2', label=True, text='hello draft 1', draft='draft1'), '3': Example(id='3', label=False, text='world draft 1', draft='draft1'), '4': Example(id='4', label=True, text='hello draft 2', draft='draft2'), '5': Example(id='5', label=False, text='world draft 2', draft='draft2'), }, version=0) assert draft_examples(concept, DRAFT_MAIN) == { '0': Example(id='0', label=True, text='hello'), '1': Example(id='1', label=False, text='world'), } assert draft_examples(concept, 'draft1') == { '0': Example(id='0', label=True, text='hello'), '1': Example(id='1', label=False, text='world'), '2': Example(id='2', label=True, text='hello draft 1', draft='draft1'), '3': Example(id='3', label=False, text='world draft 1', draft='draft1'), } assert draft_examples(concept, 'draft2') == { '0': Example(id='0', label=True, text='hello'), '1': Example(id='1', label=False, text='world'), '4': Example(id='4', label=True, text='hello draft 2', draft='draft2'), '5': Example(id='5', label=False, text='world draft 2', draft='draft2'), } def test_draft_examples_draft_dedupe() -> None: concept = Concept( namespace='test_namespace', concept_name='test_name', type=SignalInputType.TEXT, data={ '0': Example(id='0', label=True, text='hello'), '1': Example(id='1', label=False, text='world'), # Duplicate text. '2': Example(id='2', label=False, text='hello', draft='draft'), '3': Example(id='3', label=False, text='world draft', draft='draft'), }, version=0) assert draft_examples(concept, DRAFT_MAIN) == { '0': Example(id='0', label=True, text='hello'), '1': Example(id='1', label=False, text='world'), } assert draft_examples(concept, 'draft') == { # 0 is deduplicated with 2. '1': Example(id='1', label=False, text='world'), # 2 overrides 0's label. '2': Example(id='2', label=False, text='hello', draft='draft'), '3': Example(id='3', label=False, text='world draft', draft='draft'), }