-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #632 from moevm/DIS#620
Created a billet for integrating parser into tests
- Loading branch information
Showing
2 changed files
with
115 additions
and
111 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,49 +1,49 @@ | ||
import os | ||
import unittest | ||
import sys | ||
import argparse | ||
from basic_selenium_test import BasicSeleniumTest | ||
from test_statistic import StatisticTestSelenium | ||
from test_authorization import AuthTestSelenium | ||
from test_single_card_check import SingleCheckTestSelenium | ||
from test_version import VersionTestSelenium | ||
from test_file_load import FileLoadTestSelenium | ||
from test_criterion_packs_page import CriterionPacksTestSelenium | ||
from test_admin_criterions_page import AdminCriterionsTestSelenium | ||
|
||
def parse_arguments(): | ||
parser = argparse.ArgumentParser(description='Run Selenium tests with specified data') | ||
parser.add_argument('--host', type=str, default='http://127.0.0.1:8080', help='Host address for testing') | ||
parser.add_argument('--login', type=str, required=True, help='insert Username') | ||
parser.add_argument('--password', type=str, required=True, help='insert Password') | ||
script_dir = os.path.dirname(os.path.abspath(__file__)) | ||
parser.add_argument('--pres', type=str, default=os.path.join(script_dir, 'tests_data/example_of_pres.pptx'), help='your path to press for testing') | ||
parser.add_argument('--report', type=str, default=os.path.join(script_dir, 'tests_data/example_of_report.docx'), help='your path to report in .docx') | ||
parser.add_argument('--report_doc', type=str, default=os.path.join(script_dir, 'tests_data/example_of_report.doc'), help='your path to report in .doc') | ||
|
||
|
||
return parser.parse_args() | ||
|
||
def main(): | ||
args = parse_arguments() | ||
|
||
suite = unittest.TestSuite() | ||
tests = (AuthTestSelenium, | ||
StatisticTestSelenium, | ||
FileLoadTestSelenium, | ||
SingleCheckTestSelenium, | ||
VersionTestSelenium, | ||
CriterionPacksTestSelenium, | ||
AdminCriterionsTestSelenium) | ||
|
||
param = (args.host, args.login, args.password, args.report, args.report_doc, args.pres) | ||
for test in tests: | ||
suite.addTest(BasicSeleniumTest.parametrize(test, param=param)) | ||
|
||
returncode = not unittest.TextTestRunner(verbosity=2).run(suite).wasSuccessful() | ||
|
||
BasicSeleniumTest.close_driver() | ||
sys.exit(returncode) | ||
|
||
if __name__ == '__main__': | ||
main() | ||
import os | ||
import unittest | ||
import sys | ||
import argparse | ||
from basic_selenium_test import BasicSeleniumTest | ||
from test_statistic import StatisticTestSelenium | ||
from test_authorization import AuthTestSelenium | ||
from test_single_card_check import SingleCheckTestSelenium | ||
from test_version import VersionTestSelenium | ||
from test_file_load import FileLoadTestSelenium | ||
from test_criterion_packs_page import CriterionPacksTestSelenium | ||
from test_admin_criterions_page import AdminCriterionsTestSelenium | ||
|
||
def parse_arguments(): | ||
parser = argparse.ArgumentParser(description='Run Selenium tests with specified data') | ||
parser.add_argument('--host', type=str, default='http://127.0.0.1:8080', help='Host address for testing') | ||
parser.add_argument('--login', type=str, required=True, help='insert Username') | ||
parser.add_argument('--password', type=str, required=True, help='insert Password') | ||
script_dir = os.path.dirname(os.path.abspath(__file__)) | ||
parser.add_argument('--pres', type=str, default=os.path.join(script_dir, 'tests_data/example_of_pres.pptx'), help='your path to press for testing') | ||
parser.add_argument('--report', type=str, default=os.path.join(script_dir, 'tests_data/example_of_report.docx'), help='your path to report in .docx') | ||
parser.add_argument('--report_doc', type=str, default=os.path.join(script_dir, 'tests_data/example_of_report.doc'), help='your path to report in .doc') | ||
# A call to the Latex document parser will be added here | ||
|
||
return parser.parse_args() | ||
|
||
def main(): | ||
args = parse_arguments() | ||
|
||
suite = unittest.TestSuite() | ||
tests = (AuthTestSelenium, | ||
StatisticTestSelenium, | ||
FileLoadTestSelenium, | ||
SingleCheckTestSelenium, | ||
VersionTestSelenium, | ||
CriterionPacksTestSelenium, | ||
AdminCriterionsTestSelenium) | ||
|
||
param = (args.host, args.login, args.password, args.report, args.report_doc, args.pres) # Here is the tex argument of the file | ||
for test in tests: | ||
suite.addTest(BasicSeleniumTest.parametrize(test, param=param)) | ||
|
||
returncode = not unittest.TextTestRunner(verbosity=2).run(suite).wasSuccessful() | ||
|
||
BasicSeleniumTest.close_driver() | ||
sys.exit(returncode) | ||
|
||
if __name__ == '__main__': | ||
main() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,62 +1,66 @@ | ||
import time | ||
from basic_selenium_test import BasicSeleniumTest | ||
from selenium.webdriver.common.by import By | ||
from selenium.webdriver.support.wait import WebDriverWait | ||
from selenium.webdriver.support import expected_conditions as EC | ||
|
||
class FileLoadTestSelenium(BasicSeleniumTest): | ||
|
||
def upload_file(self, report_ext): | ||
report = report_ext | ||
form_for_load = self.get_driver().find_element(By.CSS_SELECTOR, 'input[type=file]') | ||
form_for_load.send_keys(report) | ||
load_button = self.get_driver().find_element(By.XPATH, '//*[@id="upload_upload_button"]') | ||
load_button.click() | ||
obj = WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.XPATH, '/html/body/div/div[2]/h4/i'))) | ||
if obj.text.startswith('Производится проверка файла'): | ||
start_time = time.time() | ||
max_time = 240 | ||
while (time.time() - start_time) < max_time: | ||
time.sleep(10) | ||
self.get_driver().refresh() | ||
try: | ||
obj = WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, 'results_table'))) | ||
if obj is not None: | ||
self.assertNotEquals(obj, None) | ||
return | ||
except: | ||
continue | ||
self.fail('element is not found') | ||
else: | ||
self.fail("file didn't upload") | ||
|
||
|
||
def check_pack(self): | ||
self.authorization() | ||
URL = self.get_url('/upload/') | ||
self.get_driver().get(URL) | ||
self.get_driver().implicitly_wait(30) | ||
# obj = self.get_driver().find_element(By.XPATH, "/html/body/div/div[2]/div/p/b") | ||
obj = self.get_driver().find_element(By.ID, "criteria_pack_name") | ||
return obj.text | ||
|
||
def test_report_load_docx(self): | ||
obj = self.check_pack() | ||
if obj == 'BaseReportCriterionPack': | ||
self.upload_file(self.param[3]) | ||
else: | ||
self.skipTest("Current criteria pack is not for report") | ||
|
||
def test_report_load_doc(self): | ||
obj = self.check_pack() | ||
if obj == 'BaseReportCriterionPack': | ||
self.upload_file(self.param[4]) | ||
else: | ||
self.skipTest("Current criteria pack is not for report") | ||
|
||
def test_report_load_pres(self): | ||
obj = self.check_pack() | ||
if obj == 'BasePresentationCriterionPack': | ||
self.upload_file(self.param[5]) | ||
else: | ||
self.skipTest("Current criteria pack is not for pres") | ||
import time | ||
from basic_selenium_test import BasicSeleniumTest | ||
from selenium.webdriver.common.by import By | ||
from selenium.webdriver.support.wait import WebDriverWait | ||
from selenium.webdriver.support import expected_conditions as EC | ||
|
||
class FileLoadTestSelenium(BasicSeleniumTest): | ||
|
||
def upload_file(self, report_ext): | ||
report = report_ext | ||
form_for_load = self.get_driver().find_element(By.CSS_SELECTOR, 'input[type=file]') | ||
form_for_load.send_keys(report) | ||
load_button = self.get_driver().find_element(By.XPATH, '//*[@id="upload_upload_button"]') | ||
load_button.click() | ||
obj = WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.XPATH, '/html/body/div/div[2]/h4/i'))) | ||
if obj.text.startswith('Производится проверка файла'): | ||
start_time = time.time() | ||
max_time = 240 | ||
while (time.time() - start_time) < max_time: | ||
time.sleep(10) | ||
self.get_driver().refresh() | ||
try: | ||
obj = WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, 'results_table'))) | ||
if obj is not None: | ||
self.assertNotEquals(obj, None) | ||
return | ||
except: | ||
continue | ||
self.fail('element is not found') | ||
else: | ||
self.fail("file didn't upload") | ||
|
||
|
||
def check_pack(self): | ||
self.authorization() | ||
URL = self.get_url('/upload/') | ||
self.get_driver().get(URL) | ||
self.get_driver().implicitly_wait(30) | ||
# obj = self.get_driver().find_element(By.XPATH, "/html/body/div/div[2]/div/p/b") | ||
obj = self.get_driver().find_element(By.ID, "criteria_pack_name") | ||
return obj.text | ||
|
||
def test_report_load_docx(self): | ||
obj = self.check_pack() | ||
if obj == 'BaseReportCriterionPack': | ||
self.upload_file(self.param[3]) | ||
else: | ||
self.skipTest("Current criteria pack is not for report") | ||
|
||
def test_report_load_doc(self): | ||
obj = self.check_pack() | ||
if obj == 'BaseReportCriterionPack': | ||
self.upload_file(self.param[4]) | ||
else: | ||
self.skipTest("Current criteria pack is not for report") | ||
|
||
def test_report_load_pres(self): | ||
obj = self.check_pack() | ||
if obj == 'BasePresentationCriterionPack': | ||
self.upload_file(self.param[5]) | ||
else: | ||
self.skipTest("Current criteria pack is not for pres") | ||
|
||
def test_report_load_tex(self): | ||
'''Function to check if tex files are uploaded correctly''' | ||
pass |