1#!/usr/bin/env python3 2# pylint: disable=C0301,C0103,C0111 3 4from __future__ import print_function 5 6import os 7import sys 8 9# Look for requirements.txt 10name = "requirements.txt" 11requirements = name 12path = os.path.dirname(os.path.realpath(__file__)) 13requirements = os.path.join(path, requirements) 14 15try: 16 import nunit_tests_provider 17 import robot_tests_provider 18 import tests_engine 19 from robot import __version__ as robot_version 20 21 # Check if current robot version matches the one from requirements file 22 def check_robot_version(): 23 required_version = "" 24 with open(requirements, 'r') as req_file: 25 for line in req_file.readlines(): 26 if line.find("robotframework==") != -1: 27 split_line = line.split("==") 28 if len(split_line) > 1: 29 required_version = split_line[1].strip() 30 break 31 32 if robot_version != required_version: 33 print(f"Required `robotframework` version is `{required_version}`, while the one available in your system is `{robot_version}`. " + \ 34 "Tests may still work, but this version of Robot is not officially supported. " + \ 35 f"Please install the required version using `pip install robotframework=={required_version}` before running the tests") 36 37 if __name__ == '__main__': 38 check_robot_version() 39 40 tests_engine.register_handler('nunit', 'csproj', nunit_tests_provider.NUnitTestSuite, nunit_tests_provider.install_cli_arguments) 41 tests_engine.register_handler('robot', 'robot', robot_tests_provider.RobotTestSuite, robot_tests_provider.install_cli_arguments, robot_tests_provider.verify_cli_arguments) 42 tests_engine.run() 43 44except ImportError as e: 45 print("{}\nPlease install required dependencies with `pip install -r {}`".format(str(e), os.path.abspath(requirements)), file=sys.stderr) 46 sys.exit(1) 47