From 5acb2499c1df14d6275b1ad9e139f02d1280cb9c Mon Sep 17 00:00:00 2001 From: Wojtek Kosior Date: Thu, 13 Jan 2022 10:15:12 +0100 Subject: facilitate managing repository URLs in a list; minor other changes --- test/unit/test_item_list.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'test/unit/test_item_list.py') diff --git a/test/unit/test_item_list.py b/test/unit/test_item_list.py index 62ec84e..faef1c0 100644 --- a/test/unit/test_item_list.py +++ b/test/unit/test_item_list.py @@ -111,9 +111,6 @@ def test_item_list_ordering(driver, execute_in_page, item_type): 'files': sample_files_by_hash } - def is_prime(n): - return n > 1 and all([n % i != 0 for i in range(2, n)]) - indexes_added = set() for iteration, to_include in enumerate([ set([i for i in range(len(items)) if is_prime(i)]), @@ -122,10 +119,10 @@ def test_item_list_ordering(driver, execute_in_page, item_type): set([i for i in range(len(items)) if i % 3 == 0]), set([i for i in range(len(items)) if i % 3 and not i & 1 and not is_prime(i)]), - set(range(16)) + set(range(len(items))) ]): # On the last iteration, re-add ALL items but with changed names. - if len(to_include) == 16: + if len(to_include) == len(items): for it in items: it['long_name'] = f'somewhat renamed {it["long_name"]}' @@ -198,14 +195,15 @@ def test_item_list_displaying(driver, execute_in_page, item_type): } sample_data[item_type + 's'] = sample_data_dict(items) - preview_container, dialog_container = execute_in_page( + preview_container, dialog_container, ul = execute_in_page( f''' let list_ctx, sample_data = arguments[0]; async function create_list() {{ await haketilodb.save_items(sample_data); list_ctx = await {item_type}_list(); document.body.append(list_ctx.main_div); - return [list_ctx.preview_container, list_ctx.dialog_container]; + return [list_ctx.preview_container, list_ctx.dialog_container, + list_ctx.ul]; }} returnval(create_list()); ''', @@ -235,6 +233,7 @@ def test_item_list_displaying(driver, execute_in_page, item_type): # Check that item removal confirmation dialog is displayed correctly. execute_in_page('list_ctx.remove_but.click();') WebDriverWait(driver, 10).until(lambda _: dialog_container.is_displayed()) + assert 'list_disabled' in ul.get_attribute('class') assert not preview_container.is_displayed() msg = execute_in_page('returnval(list_ctx.dialog_ctx.msg.textContent);') assert msg == "Are you sure you want to delete 'item2'?" @@ -242,6 +241,7 @@ def test_item_list_displaying(driver, execute_in_page, item_type): # Check that previewing other item is impossible while dialog is open. execute_in_page('list_ctx.ul.children[0].click();') assert dialog_container.is_displayed() + assert 'list_disabled' in ul.get_attribute('class') assert not preview_container.is_displayed() # Check that queuing multiple removal confirmation dialogs is impossible. @@ -252,6 +252,7 @@ def test_item_list_displaying(driver, execute_in_page, item_type): execute_in_page('list_ctx.dialog_ctx.no_but.click();') WebDriverWait(driver, 10).until(lambda _: preview_container.is_displayed()) assert not dialog_container.is_displayed() + assert 'list_disabled' not in ul.get_attribute('class') assert execute_in_page('returnval(list_ctx.ul.children.length);') == 3 # Check that item removal works properly. @@ -268,6 +269,7 @@ def test_item_list_displaying(driver, execute_in_page, item_type): WebDriverWait(driver, 10).until(item_deleted) assert not dialog_container.is_displayed() assert not preview_container.is_displayed() + assert 'list_disabled' not in ul.get_attribute('class') execute_in_page('list_ctx.ul.children[1].click();') @@ -285,6 +287,7 @@ def test_item_list_displaying(driver, execute_in_page, item_type): sample_files['LICENSES/CC0-1.0.txt']['hash_key']) driver.find_element_by_link_text('LICENSES/CC0-1.0.txt').click() WebDriverWait(driver, 10).until(lambda _: dialog_container.is_displayed()) + assert 'list_disabled' in ul.get_attribute('class') assert not preview_container.is_displayed() msg = execute_in_page('returnval(list_ctx.dialog_ctx.msg.textContent);') -- cgit v1.2.3