From 30e006724514474dfa675e2aa28c2ce70dd53190 Mon Sep 17 00:00:00 2001 From: Trent Palmer Date: Tue, 24 Aug 2021 21:09:39 -0700 Subject: [PATCH] add test_filterby_minver.py --- test/test_filterby_minver.py | 58 ++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 test/test_filterby_minver.py diff --git a/test/test_filterby_minver.py b/test/test_filterby_minver.py new file mode 100644 index 0000000..86eb7a5 --- /dev/null +++ b/test/test_filterby_minver.py @@ -0,0 +1,58 @@ +from test.test_selenium import TestSelenium +from unittest import TestCase +from test.database import get_themes_orderedby_cname +from test.theme_compare import semver_split, compare_jk +from bs4 import BeautifulSoup + + +class TestFilterByMinVer(TestSelenium, TestCase): + def setUp(self): + super(TestFilterByMinVer, self).setUp() + for x in [ + 'plus-button', + 'button-for-showing-columns', + 'min_ver-column-selection-input', + 'button-for-showing-sort-option', + 'sortByName', + 'button-for-filter-by-minver', + ]: + self.driver.find_element_by_id(x).click() + self.themes = get_themes_orderedby_cname() + + def test_filter_by_min_ver(self): + filterby_mv_inputs = [x.get_attribute('id')[0:-33] + for x in self.driver.find_element_by_id( + 'minVerSelectionRow').find_elements_by_tag_name('input')] + + for m_ver in filterby_mv_inputs: + self.driver.find_element_by_id( + f'{m_ver}-select-minver-radio-button-input').click() + if m_ver == 'none': + themes = self.themes + else: + split_mver = semver_split(m_ver) + themes = list( + filter( + lambda x: x.min_ver is not None and compare_jk( + split_mver, semver_split(x.min_ver) + ) != 1, self.themes + ) + ) + results_table_div = self.driver.find_element_by_id('results') + rows = BeautifulSoup(results_table_div.get_attribute( + 'innerHTML'), features='lxml').find('table').findAll('tr') + + for i, row in enumerate(rows[1:]): + tds = row.findAll('td') + tds_txt = [x.text for x in tds] + + self.assertEqual( + tds_txt, + [ + themes[i].cname, + themes[i].commit_date[0:10], + str(themes[i].stargazers_count), + themes[i].commit_sha[0:6], + '' if themes[i].min_ver is None else themes[i].min_ver, + ], + )