Skip to content

Commit

Permalink
Fixed #74 #81 #83
Browse files Browse the repository at this point in the history
  • Loading branch information
Snooz82 committed Nov 30, 2022
1 parent 4e0cb38 commit cee387f
Show file tree
Hide file tree
Showing 14 changed files with 70 additions and 52 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -131,3 +131,4 @@ atest/logs
.pabotsuitenames
.vscode
example/Login Tests/logs
logs/
4 changes: 2 additions & 2 deletions atest/TestCases/Defaults/CSV/defaults.csv
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
*** Test Cases ***;${var_1};${var_2};${var_name};${var_doc};${var_tags};[Tags];[Documentation]
;Variable;Variable;default Variable Variable;���������������������������;['tag1', 'tag2'];tag1,tag2;���������������������������
*** Test Cases ***;${var_1}; ${var_2} ;${var_name};${var_doc};${var_tags}; [Tags] ;[Documentation]
; Variable ; Variable ;default Variable Variable ;���������������������������;['tag1', 'tag2'];tag1,tag2;���������������������������
;b;b;default b b;��?��!)=�$;['tag1'];tag1;��?��!)=�$
My Test Name;�;�;My Test Name;;[];;
;���������������������������;���������������������������;default ��������������������������� ���������������������������;;[];;
4 changes: 2 additions & 2 deletions atest/TestCases/Defaults/CSV/generic_csv_reader.csv
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
var_1;var_2;var_name
Variable;Variable;default Variable Variable
var_1;var_2 ; var_name
Variable; Variable;default Variable Variable
b;b;default b b
�;�;default � �
���������������������������;���������������������������;default ��������������������������� ���������������������������
10 changes: 5 additions & 5 deletions atest/TestCases/Defaults/CSV/test_case_names.csv
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
*** Test Cases ***;${var_1};${var_2};${var_name_1};${var_name_2};${var_name};${var_doc};${var_tags};[Tags];[Documentation]
;Variable;Variable;A;B;default A B;���������������������������;['tag1', 'tag2'];tag1,tag2;���������������������������
;b;b;?;�;default ? �;��?��!)=�$;['tag1'];tag1;��?��!)=�$
My Test Name;�;�;;;My Test Name;;[];;
;���������������������������;���������������������������;�����������������������;�����������������������;default ����������������������� �����������������������;;[];;
*** Test Cases ***;${var_1};${var_2};${var_name_1};${var_name_2};${var_name};${var_doc};${var_tags};[Tags]
;Variable;Variable;A;B;default A B;This is the template Documentation;['tag1', 'tag2'];tag1,tag2
;b;b;?;�;default ? �;This is the template Documentation;['tag1'];tag1
My Test Name;�;�;;;My Test Name;This is the template Documentation;[];
;���������������������������;���������������������������;�����������������������;�����������������������;default ����������������������� �����������������������;This is the template Documentation;[];
2 changes: 1 addition & 1 deletion atest/TestCases/Defaults/CSV/test_case_names.robot
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ ${Default_Tags}= []

*** Test Cases *** ${var_1} ${var_2} ${var_name} ${var_doc} ${var_tags}
default ${var_name_1} ${var_name_2} a a defaults This is the Default Documentation ${Default_Tags}
[Documentation] This is the Default Documentation
[Documentation] This is the template Documentation

*** Keywords ***
Expand Down
5 changes: 5 additions & 0 deletions atest/TestCases/Defaults/CSV/test_case_no_names.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
${var_1};${var_2};${var_name_1};${var_name_2};${var_name};${var_doc};${var_tags};[Tags]
Variable;Variable;A;B;default A B;This is the template Documentation;['tag1', 'tag2'];tag1,tag2
b;b;?;�;default ? �;This is the template Documentation;['tag1'];tag1
�;�;;;default ;This is the template Documentation;[];
���������������������������;���������������������������;�����������������������;�����������������������;default ����������������������� �����������������������;This is the template Documentation;[];
26 changes: 26 additions & 0 deletions atest/TestCases/Defaults/CSV/test_case_no_names.robot
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
*** Settings ***
Library DataDriver
Test Template Check Variables


*** Variables ***
${Default_Tags}= []


*** Test Cases *** ${var_1} ${var_2} ${var_name} ${var_doc} ${var_tags}
default ${var_name_1} ${var_name_2} a a defaults This is the Default Documentation ${Default_Tags}
[Documentation] This is the template Documentation

*** Keywords ***
Check Variables
[Arguments] ${var_1} ${var_2} ${var_name} ${var_doc} ${var_tags}
Verify Variable ${var_1} ${var_2} a
Verify Variable ${TEST_DOCUMENTATION} ${var_doc} This is the Default Documentation
Verify Variable ${TEST_NAME} ${var_name} defaults
Verify Variable ${TEST_TAGS} ${var_tags} ${Default_Tags}

Verify Variable
[Arguments] ${var} ${exp_var} ${default}
Run Keyword And Continue On Failure Should Not Be Equal ${var} ${default}
Run Keyword And Continue On Failure Should Be Equal As Strings ${var} ${exp_var}
4 changes: 2 additions & 2 deletions atest/TestCases/csv_reader_config/tab-csv-file-name.tsv
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
*** Test Cases *** ${var_1} ${var_2} ${var_name} ${var_doc} ${var_tags} [Tags] [Documentation]
Variable Variable default Variable Variable ँ,ऑ,ड,ऱ,ु,॑,ॡ,ॱ,ঁ,ড,ু,ৡ,ৱ,ਁ,ਡ ['tag1', 'tag2'] tag1,tag2 ँ,ऑ,ड,ऱ,ु,॑,ॡ,ॱ,ঁ,ড,ু,ৡ,ৱ,ਁ,ਡ
*** Task *** ${var_1} ${var_2} ${var_name} ${var_doc} ${var_tags} [Tags] [Documentation]
test Variable Variable test ँ,ऑ,ड,ऱ,ु,॑,ॡ,ॱ,ঁ,ড,ু,ৡ,ৱ,ਁ,ਡ ['tag1', 'tag2'] tag1,tag2 ँ,ऑ,ड,ऱ,ु,॑,ॡ,ॱ,ঁ,ড,ু,ৡ,ৱ,ਁ,ਡ
'b' b default b b 'ÖÄ?Üß!)=§$' ['tag1'] tag1 ÖÄ?Üß!)=§$
Name with spaces Name with spaces []
'ँ,ऑ,ड,ऱ,ु,॑,ॡ,ॱ,ঁ,ড,ু,ৡ,ৱ,ਁ,ਡ\' ' 'ँ,ऑ,ड,ऱ,ु,॑,ॡ,ॱ,ঁ,ড,ু,ৡ,ৱ,ਁ,ਡ\' ' 'default ँ,ऑ,ड,ऱ,ु,॑,ॡ,ॱ,ঁ,ড,ু,ৡ,ৱ,ਁ,ਡ\' ँ,ऑ,ड,ऱ,ु,॑,ॡ,ॱ,ঁ,ড,ু,ৡ,ৱ,ਁ,ਡ\' ' []
2 changes: 1 addition & 1 deletion atest/TestCases/custom_reader/custom_reader.robot
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
*** Settings ***
Library DataDriver reader_class=TestCases/custom_reader/custom_reader.py optimize_pabot=equal
... min=0 max=101
... min=0 max=97
Test Template check vars


Expand Down
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
"Topic :: Software Development :: Testing :: Acceptance",
"Framework :: Robot Framework",
],
install_requires=["robotframework >= 3.1", "docutils", "Pygments"],
install_requires=["robotframework >= 4.0.2", "docutils", "Pygments"],
extras_require={"xls": ["pandas", "xlrd >= 1.2.0", "openpyxl"]},
python_requires=">=3.6.1",
python_requires=">=3.6.15",
)
11 changes: 6 additions & 5 deletions src/DataDriver/AbstractReaderClass.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,9 @@ def get_data_from_source(self):
)

def _is_test_case_header(self, header_string: str):
is_test = self.TEST_CASE_TABLE_PATTERN.fullmatch(header_string)
is_task = self.TASK_TABLE_PATTERN.fullmatch(header_string)
return is_task or is_test
return self.TEST_CASE_TABLE_PATTERN.fullmatch(
header_string
) or self.TASK_TABLE_PATTERN.fullmatch(header_string)

def _is_variable(self, header_string: str):
return self.VARIABLE_PATTERN.match(header_string)
Expand All @@ -84,6 +84,7 @@ def _is_documentation(self, header_string: str):
def _analyse_header(self, header_cells):
self.header = header_cells
for cell_index, cell in enumerate(self.header):
cell = cell.strip()
if self._is_test_case_header(cell):
self.test_case_column_id = cell_index
elif self._is_variable(cell):
Expand All @@ -99,7 +100,7 @@ def _read_data_from_table(self, row):
)
arguments = {}
for arguments_column_id in self.arguments_column_ids:
variable_string = self.header[arguments_column_id]
variable_string = str(self.header[arguments_column_id]).strip()
variable_value = row[arguments_column_id]
if self.LIT_EVAL_PATTERN.fullmatch(variable_string):
variable_string = f"${variable_string[1:]}"
Expand All @@ -115,7 +116,7 @@ def _read_data_from_table(self, row):
if self.tags_column_id
else None
)
documentation = row[self.documentation_column_id] if self.documentation_column_id else ""
documentation = row[self.documentation_column_id] if self.documentation_column_id else None

self.data_table.append(TestCaseData(test_case_name, arguments, tags, documentation))

Expand Down
45 changes: 15 additions & 30 deletions src/DataDriver/DataDriver.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
TagHandling,
)

__version__ = "1.6.1"
__version__ = "1.7.0"


class DataDriver:
Expand Down Expand Up @@ -1502,7 +1502,7 @@ def __init__(
self.reader_config = ReaderConfig(**self.config_dict)
self.suite_name = None
self.suite_source = None
self.template_test = None
self.template_test: Optional[TestCase] = None
self.template_keyword = None
self.data_table = None
self.data_table_dict = DotDict()
Expand All @@ -1526,11 +1526,12 @@ def _start_suite(self, suite: TestSuite, *_):
self._clean_template_test()
test_list = self._get_filtered_test_list()
if self._handle_pabot(test_list):
suite.tests = []
suite.keywords.setup = None
suite.keywords.teardown = None
suite.tests.clear()
suite.setup = None
suite.teardown = None
else:
suite.tests = test_list
suite.tests.clear()
suite.tests.extend(test_list)
self._set_date_table_to_robot_variable()
debug(f"[ DataDriver ] {len(test_list)} tests added.")
except Exception as exception:
Expand Down Expand Up @@ -1566,14 +1567,7 @@ def _clean_template_test(self):
elif self.handle_template_tags == TagHandling.UnsetTags:
for tag in self._get_all_tags():
self.template_test.tags.remove(tag)
if self._is_new_model():
self.template_test.body = None
else:
setup = self.template_test.keywords.setup
teardown = self.template_test.keywords.teardown
self.template_test.keywords.clear()
self.template_test.keywords.setup = setup
self.template_test.keywords.teardown = teardown
self.template_test.body = None

def _update_config(self):
if self.config_dict.config_keyword:
Expand Down Expand Up @@ -1864,18 +1858,11 @@ def _replace_test_case_name(self):
self.test.name = self.test_case_data.test_case_name

def _replace_test_case_keywords(self):
if self._is_new_model():
self.test.setup = self.template_test.setup
self.test.teardown = self.template_test.teardown
self.test.body.create_keyword(
name=self.template_keyword.name, args=self._get_template_arguments()
)
else:
self.test.keywords.setup = self.template_test.keywords.setup
self.test.keywords.create(
name=self.template_keyword.name, args=self._get_template_arguments()
)
self.test.keywords.teardown = self.template_test.keywords.teardown
self.test.setup = self.template_test.setup
self.test.teardown = self.template_test.teardown
self.test.body.create_keyword(
name=self.template_keyword.name, args=self._get_template_arguments()
)

def _get_template_arguments(self):
return_arguments = []
Expand All @@ -1902,7 +1889,5 @@ def _add_tag_if_pabot_dryrun(self):
self.test.tags.add("pabot:dynamictest")

def _replace_test_case_doc(self):
self.test.doc = self.test_case_data.documentation

def _is_new_model(self):
return hasattr(self.template_test, "body")
if self.test_case_data.documentation is not None:
self.test.doc = self.test_case_data.documentation
2 changes: 1 addition & 1 deletion src/DataDriver/ReaderConfig.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ def __init__(
test_case_name: str = "",
arguments: Optional[Dict] = None,
tags: Optional[List] = None,
documentation: str = "",
documentation: Optional[str] = None,
):
super().__init__()
self.test_case_name = test_case_name
Expand Down
2 changes: 1 addition & 1 deletion src/DataDriver/generic_csv_reader.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ def _read_file_to_data_table(self):
if row_index == 0:
row_of_variables = []
for cell in row:
row_of_variables.append(f"${{{cell}}}")
row_of_variables.append(f"${{{cell.strip()}}}")
self._analyse_header(row_of_variables)
else:
self._read_data_from_table(row)

0 comments on commit cee387f

Please sign in to comment.