Move flaky test out of class so that it can properly xfail

This commit is contained in:
2023-07-09 23:07:58 +01:00
parent 769d983e3d
commit e7c4f7f73d
2 changed files with 48 additions and 35 deletions

View File

@@ -38,3 +38,17 @@ def test_asset(db, category, status):
asset, created = models.Asset.objects.get_or_create(asset_id="91991", description="Spaceflower", status=status, category=category, date_acquired=datetime.date(1991, 12, 26), replacement_cost=100) asset, created = models.Asset.objects.get_or_create(asset_id="91991", description="Spaceflower", status=status, category=category, date_acquired=datetime.date(1991, 12, 26), replacement_cost=100)
yield asset yield asset
asset.delete() asset.delete()
@pytest.fixture
def test_status_2(db):
status = models.AssetStatus.objects.create(name="Lost", should_show=False)
yield status
status.delete()
@pytest.fixture
def test_asset_2(db, category, test_status_2):
asset, created = models.Asset.objects.get_or_create(asset_id="10", description="Working Mic", status=test_status_2, category=category, date_acquired=datetime.date(2001, 10, 20), replacement_cost=1000)
yield asset
asset.delete()

View File

@@ -54,46 +54,45 @@ class TestAssetList(AutoLoginTest):
self.assertEqual("10", asset_ids[2]) self.assertEqual("10", asset_ids[2])
self.assertEqual("C1", asset_ids[3]) self.assertEqual("C1", asset_ids[3])
@pytest.mark.xfail(reason="Fails on CI for unknown reason", raises=AssertionError)
def test_search(self):
self.page.set_query("10")
self.page.search()
self.assertTrue(len(self.page.assets) == 1)
self.assertEqual("Working Mic", self.page.assets[0].description)
self.assertEqual("10", self.page.assets[0].id)
self.page.set_query("light") @pytest.mark.xfail(reason="Fails on CI for unknown reason", raises=AssertionError)
self.page.search() def test_search(logged_in_browser, admin_user, live_server, test_asset, test_asset_2, category, status, cable_type):
self.assertTrue(len(self.page.assets) == 1) page = pages.AssetList(logged_in_browser.driver, live_server.url).open()
self.assertEqual("A light", self.page.assets[0].description) page.set_query(test_asset.asset_id)
page.search()
assert len(page.assets) == 1
assert page.assets[0].description == test_asset.description
assert page.assets[0].id == test_asset.asset_id
self.page.set_query("Random string") page.set_query(test_asset.description)
self.page.search() page.search()
self.assertTrue(len(self.page.assets) == 0) assert len(page.assets) == 1
assert page.assets[0].description == test_asset.description
self.page.set_query("") page.set_query("Random string")
self.page.search() page.search()
# Only working stuff shown by default assert len(page.assets) == 0
self.assertTrue(len(self.page.assets) == 2)
self.page.status_selector.toggle() page.set_query("")
self.assertTrue(self.page.status_selector.is_open) page.search()
self.page.status_selector.select_all() # Only working stuff shown by default
self.page.status_selector.toggle() assert len(page.assets) == 1
self.assertFalse(self.page.status_selector.is_open)
self.page.filter()
self.assertTrue(len(self.page.assets) == 4)
self.page.category_selector.toggle() page.status_selector.toggle()
self.assertTrue(self.page.category_selector.is_open) assert page.status_selector.is_open
self.page.category_selector.set_option("Sound", True) page.status_selector.select_all()
self.page.category_selector.close() page.status_selector.toggle()
self.assertFalse(self.page.category_selector.is_open) assert not page.status_selector.is_open
self.page.filter() page.filter()
self.assertTrue(len(self.page.assets) == 2) assert len(page.assets) == 2
asset_ids = list(map(lambda x: x.id, self.page.assets))
self.assertEqual("1", asset_ids[0]) page.category_selector.toggle()
self.assertEqual("10", asset_ids[1]) assert page.category_selector.is_open
page.category_selector.set_option(category.name, True)
page.category_selector.close()
assert not page.category_selector.is_open
page.filter()
assert len(page.assets) == 2
def test_cable_create(logged_in_browser, admin_user, live_server, test_asset, category, status, cable_type): def test_cable_create(logged_in_browser, admin_user, live_server, test_asset, category, status, cable_type):