def test_sort_parts_by_dependencies(self) -> None:
        parts = [Parts('higher.h', ['lower.h']), Parts('lower.h', [])]
        self.assertTrue(SingleHeaderFile.depends_on(parts[0], parts[1]))
        self.assertFalse(SingleHeaderFile.depends_on(parts[1], parts[0]))

        parts = SingleHeaderFile.sort_parts_by_dependencies(parts)
        verify_all('sorted', parts)
def test_parse_complex_object(options, reporter):
    results = []
    results.append(options._parse_to_tokens('method({"key": "value"})'))
    results.append(options._parse_to_tokens('attribute={"key": "value"}'))
    results.append(options._parse_to_tokens('attribute=("value1", "value2")'))
    results.append(options._parse_to_tokens('method("foo", {"key": "value"})'))
    verify_all('Parse complex Python object', results, reporter=reporter)
Exemple #3
0
    def test_validate_single_header_file_content(self) -> None:
        hs = ["A.h", "B.h"]
        hpps = ["C.hpp"]

        source_code_snippets = [
            remove_indentation << '''
            # Source code is fine: there should be no error message
            #include <iostream>
            #include "A.h"
            #include "B.h"
            ''',
            remove_indentation << '''
            # A.h is incorrectly included
            #include <A.h>
            #include "B.h"
            ''',
            remove_indentation << '''
            # B.h and C.hpp are incorrectly included: there should ve error messages for both
            #include <B.h>
            #include <C.hpp>
            ''',
        ]
        header = f"Testing validation of #include lines, with these header files: {str(hs)} and {str(hpps)}"

        def validate_includes(source: str) -> str:
            return f"""===============================\nSource snippet:\n{source}\n=>\nError message (if any):\n{CppGeneration.validate_single_header_file_content(hs, hpps, source)}"""

        verify_all(header, source_code_snippets,
                   lambda source: validate_includes(source))
Exemple #4
0
def test_index_of_separator(options, reporter):
    results = []
    results.append(options._get_arument_index('method({"key": "value"})'))
    results.append(options._get_arument_index('attribute={"key": "value"}'))
    results.append(options._get_arument_index('method(foo={"key": "value"})'))
    results.append(options._get_arument_index('attribute=("value1", "value2")'))
    verify_all("Get argument index", results, reporter=reporter)
 def test_get_options(self):
     options = 'add_argument("--proxy-server=66.97.38.58:80")'
     sel_options = self.options.create('chrome', options)
     self.results.append(sel_options.arguments)
     verify_all('Selenium options with string.',
                self.results,
                reporter=self.reporter)
Exemple #6
0
 def test_single_method(self):
     self._parse_result(
         self.creator._get_ff_profile('set_preference("key1", "arg1")')
     )
     self._parse_result(
         self.creator._get_ff_profile(
             'set_preference("key1", "arg1");set_preference("key1", "arg1")'
         )
     )
     self._parse_result(
         self.creator._get_ff_profile(
             'set_preference("key1", "arg1") ; set_preference("key2", "arg2")'
         )
     )
     profile = self.creator._get_ff_profile("update_preferences()")
     self.results.append(isinstance(profile, webdriver.FirefoxProfile))
     try:
         self.creator._get_ff_profile('wrong_name("key1", "arg1")')
     except AttributeError as error:
         self.results.append(error)
     try:
         self.creator._get_ff_profile('set_proxy("foo")')
     except Exception as error:
         self.results.append(str(error))
     verify_all("Firefox profile parsing", self.results, reporter=self.reporter)
 def test_parse_options_string(self):
     self.results.append(self.options._parse('method("arg1")'))
     self.results.append(self.options._parse('method("arg1", "arg2")'))
     self.results.append(self.options._parse('method(True)'))
     self.results.append(self.options._parse('method(1)'))
     self.results.append(
         self.options._parse('method("arg1", 2, None, False, "arg2")'))
     self.results.append(
         self.options._parse(
             'method ( " arg1 " , 2 , None , False , " arg2 " )'))
     self.results.append(self.options._parse('attribute="arg1"'))
     self.results.append(self.options._parse('attribute = True'))
     self.results.append(
         self.options._parse('method("arg1");attribute=True'))
     self.results.append(
         self.options._parse(
             'method("arg1") ; attribute=True ; method("arg2")'))
     self.results.append(self.options._parse('attribute'))
     self.results.append(self.options._parse('method()'))
     self.results.append(
         self.options._parse('method("--proxy 10.10.1.3:2345")'))
     self.results.append(self.options._parse('method(";arg1")'))
     self.results.append(
         self.options._parse('method  (   "arg1"  ,    2    ,"arg2"   )'))
     self.results.append(self.options._parse("method('arg1')"))
     verify_all('Selenium options string to dict',
                self.results,
                reporter=self.reporter)
Exemple #8
0
 def test_convert_key(self):
     results = []
     results.append(self.element_keywords._convert_special_keys(["B"]))
     results.append(self.element_keywords._convert_special_keys(["AA", "CCC"]))
     results.append(self.element_keywords._convert_special_keys(["ALT", "B"]))
     results.append(self.element_keywords._convert_special_keys(["ALT", "CTRL"]))
     verify_all("To Selenium Special Keys", results, reporter=self.reporter)
def test_create_with_android(options, reporter):
    results = []
    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_experimental_option('androidPackage', 'com.android.chrome')
    sel_options = options.create('android', chrome_options)
    results.append([sel_options.arguments, sel_options.experimental_options])
    verify_all('Selenium options with android', results, reporter=reporter)
Exemple #10
0
 def test_check_marker_error(self):
     examples = [
         (),
         (
             "ARGUMENTS",
             "arg1",
             "ARGUMENTS",
             "arg1",
             "JAVASCRIPT",
             "code1",
             "JAVASCRIPT",
             "code2",
         ),
         ("JAVASCRIPT", "code1", "JAVASCRIPT", "code2"),
         ("JAVASCRIPT", "code1", "ARGUMENTS", "arg1", "ARGUMENTS", "arg1"),
         (
             "code1",
             "JAVASCRIPT",
             "code1",
             "ARGUMENTS",
             "arg1",
         ),
         ("ARGUMENTS", "arg1", "ARGUMENTS", "arg1", "JAVASCRIPT", "code1"),
         ("aRGUMENtS", "arg1", "arg2", "JAVASCRIPT", "code1", "code2"),
     ]
     examples = examples + self.code_examples
     all_results = []
     for code in examples:
         all_results.append(self.js_marker_error(code))
     verify_all("error", all_results, reporter=self.reporter)
def test_options_create(options, reporter):
    results = []
    options_str = 'add_argument("--disable-dev-shm-usage")'
    sel_options = options.create('chrome', options_str)
    results.append(sel_options.arguments)

    options_str = '%s;add_argument("--headless")' % options_str
    sel_options = options.create('chrome', options_str)
    results.append(sel_options.arguments)

    options_str = '%s;add_argument("--proxy-server=66.97.38.58:80")' % options_str
    sel_options = options.create('chrome', options_str)
    results.append(sel_options.arguments)

    options_str = '%s;binary_location("too", "many", "args")' % options_str
    try:
        options.create('chrome', options_str)
    except Exception as error:
        results.append(error.__str__()[:7])

    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument('--disable-dev-shm-usage')
    sel_options = options.create('chrome', chrome_options)
    results.append(sel_options.arguments)

    sel_options = options.create('chrome', None)
    results.append(sel_options)

    sel_options = options.create('chrome', 'None')
    results.append(sel_options)

    verify_all('Selenium options', results, reporter=reporter)
def test_parse_options_string(options, reporter):
    results = []
    results.append(options._parse('method("arg1")'))
    results.append(options._parse('method("arg1", "arg2")'))
    results.append(options._parse('method(True)'))
    results.append(options._parse('method(1)'))
    results.append(options._parse('method("arg1", 2, None, False, "arg2")'))
    results.append(
        options._parse('method ( " arg1 " , 2 , None , False , " arg2 " )'))
    results.append(options._parse('attribute="arg1"'))
    results.append(options._parse('  attribute = True  '))
    results.append(options._parse('method("arg1");attribute=True'))
    results.append(
        options._parse('method("arg1") ; attribute=True ; method("arg2")'))
    results.append(options._parse('attribute'))
    results.append(options._parse('method()'))
    results.append(options._parse('method(None)'))
    results.append(options._parse('method("--proxy 10.10.1.3:2345")'))
    results.append(options._parse('method(";arg1")'))
    results.append(options._parse('method  (   "arg1"  ,    2    ,"arg2"   )'))
    results.append(options._parse("method('arg1')"))
    results.append(
        options._parse(
            'add_argument("-profile"); add_argument("C:\\\\path\\to\\\\profile")'
        ))
    results.append(
        options._parse(
            r'add_argument("-profile"); add_argument("C:\\path\\to\\profile")')
    )
    results.append(options._parse('attribute=None'))
    results.append(
        options._parse(
            'method("foo", {"key": False});attribute=True;method("bar", {"key": None})'
        ))
    verify_all('Selenium options string to dict', results, reporter=reporter)
Exemple #13
0
 def test_parse_keys_aliases(self):
     results = []
     results.append(self.element_keywords._parse_aliases("CTRL"))
     results.append(self.element_keywords._parse_aliases("ESC"))
     results.append(self.element_keywords._parse_aliases("CONTROL"))
     results.append(self.element_keywords._parse_aliases("BB"))
     results.append(self.element_keywords._parse_aliases("END"))
     verify_all("Alias testing", results, reporter=self.reporter)
Exemple #14
0
 def test_split_options(self):
     self.results.append(self.options._split('method("arg1");method("arg2")'))
     self.results.append(self.options._split('method("arg1")'))
     self.results.append(self.options._split('attribute=True'))
     self.results.append(self.options._split('attribute="semi;colons;middle";other_attribute=True'))
     self.results.append(self.options._split('method("arg1;");method(";arg2;")'))
     self.results.append(self.options._split(' method ( " arg1 ") ; method ( " arg2 " ) '))
     verify_all('Selenium options string splitting', self.results, reporter=self.reporter)
Exemple #15
0
 def test_convert_key(self):
     results = []
     results.append(self.element_keywords._convert_special_keys(['B']))
     results.append(self.element_keywords._convert_special_keys(['AA', 'CCC']))
     results.append(self.element_keywords._convert_special_keys(['ALT', 'B']))
     results.append(self.element_keywords._convert_special_keys(['ALT', 'CTRL']))
     results = self.result_formatter(results)
     verify_all('To Selenium Special Keys', results, reporter=self.reporter)
Exemple #16
0
def test_parse_arguemnts(options, reporter):
    results = []
    results.append(options._parse_arguments(("arg1",), True))
    results.append(options._parse_arguments("arg1", False))
    results.append(options._parse_arguments({"key": "value"}, False))
    results.append(options._parse_arguments(["value1", "value2"], False))
    results.append(options._parse_arguments(("foo", {"key": "value"}), False))
    verify_all("Parse arguments from complex object", results, reporter=reporter)
Exemple #17
0
 def test_parse_options_string_errors(self):
     self.results.append(self.error_formatter(self.options._parse, 'method("arg1)', True))
     self.results.append(self.error_formatter(self.options._parse, 'method(arg1")', True))
     self.results.append(self.error_formatter(self.options._parse, 'method(arg1)', True))
     self.results.append(self.error_formatter(self.options._parse, 'attribute=arg1', True))
     self.results.append(self.error_formatter(self.options._parse, 'attribute=webdriver', True))
     self.results.append(self.error_formatter(self.options._parse, 'method(argument="value")', True))
     self.results.append(self.error_formatter(self.options._parse, 'method({"key": "value"})', True))
     verify_all('Selenium options string errors', self.results, reporter=self.reporter)
Exemple #18
0
def test_parse_options_string_errors(options, reporter):
    results = []
    results.append(error_formatter(options._parse, 'method("arg1)', True))
    results.append(error_formatter(options._parse, 'method(arg1")', True))
    results.append(error_formatter(options._parse, "method(arg1)", True))
    results.append(error_formatter(options._parse, "attribute=arg1", True))
    results.append(error_formatter(options._parse, "attribute=webdriver", True))
    results.append(error_formatter(options._parse, 'method(argument="value")', True))
    verify_all("Selenium options string errors", results, reporter=reporter)
Exemple #19
0
 def test_parse_keys_aliases(self):
     results = []
     results.append(self.element_keywords._parse_aliases('CTRL'))
     results.append(self.element_keywords._parse_aliases('ESC'))
     results.append(self.element_keywords._parse_aliases('CONTROL'))
     results.append(self.element_keywords._parse_aliases('BB'))
     results.append(self.element_keywords._parse_aliases('END'))
     results = self.result_formatter(results)
     verify_all('Alias testing', results, reporter=self.reporter)
def test_string(reporter):
    results = []
    results.append(escape_xpath_value("tidii"))
    results.append(escape_xpath_value('"tidii"'))
    results.append(escape_xpath_value("'tidii'"))
    results.append(escape_xpath_value("\"'tidii'"))
    results.append(escape_xpath_value("\"'tidii'\""))
    results.append(escape_xpath_value('"\'t"id"ii\'"'))
    results.append(escape_xpath_value("\"'tidii'\""))
    results.append(escape_xpath_value("\"'ti'd'ii'\""))
    verify_all("Escape xpath value", results, reporter=reporter)
Exemple #21
0
def test_split_options(options, reporter):
    results = []
    results.append(options._split('method("arg1");method("arg2")'))
    results.append(options._split('method("arg1")'))
    results.append(options._split("attribute=True"))
    results.append(
        options._split('attribute="semi;colons;middle";other_attribute=True')
    )
    results.append(options._split('method("arg1;");method(";arg2;")'))
    results.append(options._split(' method ( " arg1 ") ; method ( " arg2 " ) '))
    verify_all("Selenium options string splitting", results, reporter=reporter)
Exemple #22
0
 def test_separate_key(self):
     results = []
     results.append(self.element_keywords._separate_key("BB"))
     results.append(self.element_keywords._separate_key("ALT+B"))
     results.append(self.element_keywords._separate_key("A+B+C"))
     results.append(self.element_keywords._separate_key("A++"))
     results.append(self.element_keywords._separate_key("A+++"))
     results.append(self.element_keywords._separate_key("A+++C"))
     results.append(self.element_keywords._separate_key("+"))
     results.append(self.element_keywords._separate_key("++"))
     results.append(self.element_keywords._separate_key("+++"))
     verify_all("Separate key", results, reporter=self.reporter)
def test_normal_file_path(reporter):
    results = []
    results.append(_format_path("/foo/file.log", 1))
    results.append(_format_path("/foo/file-{index}.log", 1))
    results.append(_format_path("/foo/file-{index}.log", "0001"))
    results.append(_format_path("/foo/file-{foo}.log", 1))
    results.append(_format_path("/{foo}/file-{index}.log", 1))
    results.append(_format_path("/foo/file-{index:03}.log", 1))
    results.append(_format_path("/foo/{index}-file-{index}.log", "1234"))
    results.append(_format_path("/foo/file-{in dex}.log", "1234"))
    results.append(_format_path("/foo/file-{in@dex}.log", "1234"))
    verify_all("Different file paths.", results, reporter=reporter)
Exemple #24
0
def test_normal_file_path(reporter):
    results = []
    results.append(_format_path('/foo/file.log', 1))
    results.append(_format_path('/foo/file-{index}.log', 1))
    results.append(_format_path('/foo/file-{index}.log', '0001'))
    results.append(_format_path('/foo/file-{foo}.log', 1))
    results.append(_format_path('/{foo}/file-{index}.log', 1))
    results.append(_format_path('/foo/file-{index:03}.log', 1))
    results.append(_format_path('/foo/{index}-file-{index}.log', '1234'))
    results.append(_format_path('/foo/file-{in dex}.log', '1234'))
    results.append(_format_path('/foo/file-{in@dex}.log', '1234'))
    verify_all('Different file paths.', results, reporter=reporter)
Exemple #25
0
 def test_separate_key(self):
     results = []
     results.append(self.element_keywords._separate_key('BB'))
     results.append(self.element_keywords._separate_key('ALT+B'))
     results.append(self.element_keywords._separate_key('A+B+C'))
     results.append(self.element_keywords._separate_key('A++'))
     results.append(self.element_keywords._separate_key('A+++'))
     results.append(self.element_keywords._separate_key('A+++C'))
     results.append(self.element_keywords._separate_key('+'))
     results.append(self.element_keywords._separate_key('++'))
     results.append(self.element_keywords._separate_key('+++'))
     results = self.result_formatter(results)
     verify_all('Separate key', results, reporter=self.reporter)
Exemple #26
0
 def test_importer(self):
     self.results.append(self.options._import_options('firefox'))
     self.results.append(self.options._import_options('headless_firefox'))
     self.results.append(self.options._import_options('chrome'))
     self.results.append(self.options._import_options('headless_chrome'))
     self.results.append(self.options._import_options('ie'))
     self.results.append(self.options._import_options('opera'))
     self.results.append(self.options._import_options('edge'))
     self.results.append(self.error_formatter(self.options._import_options, 'phantomjs'))
     self.results.append(self.error_formatter(self.options._import_options, 'safari'))
     self.results.append(self.error_formatter(self.options._import_options, 'htmlunit'))
     self.results.append(self.error_formatter(self.options._import_options, 'htmlunit_with_js'))
     self.results.append(self.options._import_options('android'))
     self.results.append(self.error_formatter(self.options._import_options, 'iphone'))
     verify_all('Selenium options import', self.results, reporter=self.reporter)
def test_importer(options, reporter):
    results = []
    results.append(options._import_options("firefox"))
    results.append(options._import_options("headless_firefox"))
    results.append(options._import_options("chrome"))
    results.append(options._import_options("headless_chrome"))
    results.append(options._import_options("ie"))
    results.append(options._import_options("opera"))
    results.append(options._import_options("edge"))
    results.append(error_formatter(options._import_options, "safari"))
    results.append(error_formatter(options._import_options, "htmlunit"))
    results.append(error_formatter(options._import_options,
                                   "htmlunit_with_js"))
    results.append(error_formatter(options._import_options, "iphone"))
    verify_all("Selenium options import", results, reporter=reporter)
Exemple #28
0
 def test_parse_keys(self):
     results = []
     results.append(self.element_keywords._parse_keys("A", "B", "C"))
     results.append(self.element_keywords._parse_keys("AAA", "CONTROL", "C"))
     results.append(self.element_keywords._parse_keys("AAA", "CONTROL+B", "C"))
     results.append(self.element_keywords._parse_keys("CONTROL+A", "ALT+B"))
     results.append(self.element_keywords._parse_keys("CONTROL+ALT+b"))
     results.append(self.element_keywords._parse_keys("Press CTRL+C to"))
     results.append(self.element_keywords._parse_keys("Press CTRL++C to"))
     results.append(self.element_keywords._parse_keys("END+E+N+D"))
     results.append(self.element_keywords._parse_keys("AALTO"))
     results.append(self.element_keywords._parse_keys("alt"))
     results.append(self.element_keywords._parse_keys("IS ALT HERE"))
     results.append(self.element_keywords._parse_keys("IS", "ALT", "HERE"))
     verify_all("index", results, reporter=self.reporter)
Exemple #29
0
 def test_parse_keys(self):
     results = []
     results.append(self.element_keywords._parse_keys('A', 'B', 'C'))
     results.append(self.element_keywords._parse_keys('AAA', 'CONTROL', 'C'))
     results.append(self.element_keywords._parse_keys('AAA', 'CONTROL+B', 'C'))
     results.append(self.element_keywords._parse_keys('CONTROL+A', 'ALT+B'))
     results.append(self.element_keywords._parse_keys('CONTROL+ALT+b'))
     results.append(self.element_keywords._parse_keys('Press CTRL+C to'))
     results.append(self.element_keywords._parse_keys('Press CTRL++C to'))
     results.append(self.element_keywords._parse_keys('END+E+N+D'))
     results.append(self.element_keywords._parse_keys('AALTO'))
     results.append(self.element_keywords._parse_keys('alt'))
     results.append(self.element_keywords._parse_keys('IS ALT HERE'))
     results.append(self.element_keywords._parse_keys('IS', 'ALT', 'HERE'))
     results = self.result_formatter(results)
     verify_all('index', results, reporter=self.reporter)
 def test_check_marker_error(self):
     examples = [
         (),
         ('ARGUMENTS', 'arg1', 'ARGUMENTS', 'arg1', 'JAVASCRIPT',
          'code1', 'JAVASCRIPT', 'code2'),
         ('JAVASCRIPT', 'code1', 'JAVASCRIPT', 'code2'),
         ('JAVASCRIPT', 'code1', 'ARGUMENTS', 'arg1', 'ARGUMENTS', 'arg1'),
         ('code1', 'JAVASCRIPT', 'code1' 'ARGUMENTS', 'arg1',),
         ('ARGUMENTS', 'arg1', 'ARGUMENTS', 'arg1', 'JAVASCRIPT', 'code1'),
         ('aRGUMENtS', 'arg1', 'arg2', 'JAVASCRIPT', 'code1', 'code2'),
     ]
     examples = examples + self.code_examples
     all_results = []
     for code in examples:
         all_results.append(self.js_marker_error(code))
     verify_all('error', all_results, reporter=self.reporter)
Exemple #31
0
 def test_check_marker_error(self):
     examples = [
         (),
         ('ARGUMENTS', 'arg1', 'ARGUMENTS', 'arg1', 'JAVASCRIPT',
          'code1', 'JAVASCRIPT', 'code2'),
         ('JAVASCRIPT', 'code1', 'JAVASCRIPT', 'code2'),
         ('JAVASCRIPT', 'code1', 'ARGUMENTS', 'arg1', 'ARGUMENTS', 'arg1'),
         ('code1', 'JAVASCRIPT', 'code1' 'ARGUMENTS', 'arg1',),
         ('ARGUMENTS', 'arg1', 'ARGUMENTS', 'arg1', 'JAVASCRIPT', 'code1'),
         ('aRGUMENtS', 'arg1', 'arg2', 'JAVASCRIPT', 'code1', 'code2'),
     ]
     examples = examples + self.code_examples
     all_results = []
     for code in examples:
         all_results.append(self.js_marker_error(code))
     verify_all('error', all_results, reporter=self.reporter)
 def test_indexing(self):
     all_results = []
     for code in self.code_examples:
         all_results.append(self.js._get_marker_index(code))
     verify_all('index', all_results, reporter=self.reporter)
 def test_separate_code_and_args(self):
     all_results = []
     for code in self.code_examples:
         all_results.append(self.js_reporter(code))
     verify_all('code and args', all_results, reporter=self.reporter)