12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- from typing import Dict, List, Tuple
- from pytest import fixture, mark
- from app.parse_recipe import parse_recipe
- from app.data.QueryManager import QueryManager
- from . import ALL_UNITS
- from app.widgets import (
- SuggestionPopup,
- FlowBarGraphWithVScale,
- NoTabCheckBox,
- )
- @fixture
- def signals():
- return []
- @fixture
- def signal(signals):
- return lambda x, *a: signals.append(x)
- @fixture
- def tracker():
- return dict()
- @fixture
- def options():
- return ['a', 'b', 'c']
- @fixture
- def suggestion_popup(tracker, options, signal):
- popup = SuggestionPopup('identifier', options, lambda x, y: tracker.update({x: y}))
- popup._emit = signal
- return popup
- @mark.parametrize('pos', [0, 1, 2])
- def test_suggestion_popup_choice(suggestion_popup: SuggestionPopup, tracker: Dict[str, str], options: List[str], pos: int):
- while pos > 0:
- pos -= 1
- suggestion_popup.keypress((0,0), 'tab')
- assert len(tracker.keys()) == 0
- suggestion_popup.keypress((0,0), 'enter')
- assert tracker['identifier'] == options[pos]
- def test_suggestion_popup_banish(suggestion_popup: SuggestionPopup, tracker: Dict[str, str], options: List[str], signals):
- suggestion_popup.keypress((0,0), 'esc')
- assert len(tracker.keys()) == 0
- assert 'close' in signals
- @fixture
- def bargraph():
- return FlowBarGraphWithVScale(
- 50, 14,
- ['bg','popup_focus', 'badge_neutral' ],
- hatt=['dark red', 'dark red', 'dark red']
- )
- @mark.parametrize('vscale', [
- list(map(float, (1, 2, 3))),
- None,
- ])
- def test_flow_bar_graph_with_vscale(bargraph: FlowBarGraphWithVScale, vscale: Tuple[float]):
- bargraph.set_data([[1],[2],[3]], 3, vscale=vscale)
- bargraph.set_caption('my data')
- assert bargraph.total_width == 50
- assert bargraph.canvas_width == 50 - bargraph._vscale_width
- assert bargraph.height == 14
- bargraph.set_bar_width(2)
- bargraph.render((100,))
- @fixture
- def notabcheckbox():
- return NoTabCheckBox('label')
- def test_no_tab_checkbox(notabcheckbox: NoTabCheckBox):
- state = notabcheckbox.get_state()
- notabcheckbox.keypress((0,0), 'tab')
- assert notabcheckbox.get_state() == state
- notabcheckbox.keypress((0,0), 'enter')
- assert notabcheckbox.get_state() != state
|