New features and enhancements
- Introduce a new integration test framework (#1931, #2496, #3121, #3413 by @rodja, @ed2050, @MarcDelahousse, @codingpaula, @falkoschindler):
- a new
user
fixture cuts away the browser and replaces it by a lightweight simulation entirely in Python; a test for a login page can now be written like this:async def test_login(): await user.open('/') user.find('Username').type('user1') user.find('Password').type('pass1').trigger('keydown.enter') await user.should_see('Hello user1!') user.find('logout').click() await user.should_see('Log in')
- a new
ElementFilter
allows to find and manipulate UI elements during tests and in production - a new pytest plugin allows to use both NiceGUI fixtures
screen
anduser
viapytest_plugins = ['nicegui.testing.plugin']
- a new
- Remove icecream dependency (#3439 by @falkoschindler)
- Provide tests for [https://nicegui.io/documentation/section_action_events#running_i_o-bound_tasks) and
run.cpu_bound
(#2234 by @rodja, @falkoschindler)
Documentation
- Add more links to the documentation (#3434 by @rodja)
- Improve the documentation overview (#3409 by @rodja)
- Say browser session cookie is "signed", not "encrypted" (#3424 by @NickCrews)
- Restrict access to all routes in the "Authentication" example (#3403, #3417 by @Daniel-Fei, @falkoschindler, @rodja)