60 lines
1.8 KiB
Python
60 lines
1.8 KiB
Python
|
|
import queries.crud
|
||
|
|
from enums import CounterType
|
||
|
|
|
||
|
|
def test_initial_state(app):
|
||
|
|
app.run()
|
||
|
|
assert not app.exception
|
||
|
|
assert not app.error
|
||
|
|
assert len(app.header) == 0 # No counter currently present
|
||
|
|
|
||
|
|
def test_add_counter(app):
|
||
|
|
app.run()
|
||
|
|
|
||
|
|
# Open new counter dialog
|
||
|
|
app.button(key="new_counter_button").click().run()
|
||
|
|
|
||
|
|
# Fill in details and submit
|
||
|
|
app.text_input(key="new_counter_title").set_value("Walk")
|
||
|
|
app.selectbox(key='new_counter_type').select(CounterType.DAILY.name)
|
||
|
|
app.radio(key='new_counter_color_selector').set_value("020122")
|
||
|
|
app.button(key="create_counter_submit_btn").click()
|
||
|
|
app.run()
|
||
|
|
|
||
|
|
assert not app.exception
|
||
|
|
assert not app.error
|
||
|
|
assert len(app.text_input) == 0 # dialog closed, back in the main screen
|
||
|
|
|
||
|
|
# Simulate button listener due to bug https://github.com/streamlit/streamlit/issues/9786
|
||
|
|
queries.crud.create_counter("Walk", CounterType.DAILY, "020122")
|
||
|
|
app.run()
|
||
|
|
|
||
|
|
assert len(app.header) == 1 # A new counter was added
|
||
|
|
assert app.header[0].value == ":material/calendar_clock: Walk"
|
||
|
|
|
||
|
|
def test_remove_counter(app):
|
||
|
|
|
||
|
|
# Create a counter to remove
|
||
|
|
queries.crud.create_counter("Remove me", CounterType.SIMPLE, "020122")
|
||
|
|
|
||
|
|
app.run()
|
||
|
|
|
||
|
|
assert not app.exception
|
||
|
|
assert not app.error
|
||
|
|
assert len(app.header) == 1 # One counter exists
|
||
|
|
|
||
|
|
# Remove the counter
|
||
|
|
app.button("remove_counter_1").click().run()
|
||
|
|
|
||
|
|
# Confirmation
|
||
|
|
assert app.subheader[0].value == 'Are you sure?'
|
||
|
|
app.button(key="remove_counter_submit_btn").click()
|
||
|
|
app.run()
|
||
|
|
|
||
|
|
assert len(app.text_input) == 0 # dialog closed, back in the main screen
|
||
|
|
|
||
|
|
# Simulate button listener due to bug https://github.com/streamlit/streamlit/issues/9786
|
||
|
|
queries.crud.remove_counter(1)
|
||
|
|
app.run()
|
||
|
|
|
||
|
|
assert len(app.header) == 0 # No counter exists
|