robotframework-testdoc 0.1.4__tar.gz → 0.1.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of robotframework-testdoc might be problematic. Click here for more details.

Files changed (41) hide show
  1. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/.github/workflows/build-publish.yml +5 -0
  2. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/PKG-INFO +27 -4
  3. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/README.md +25 -2
  4. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/atest/config/config_with_colors.toml +1 -1
  5. robotframework_testdoc-0.1.7/docs/style_blue.png +0 -0
  6. robotframework_testdoc-0.1.7/docs/style_dark.png +0 -0
  7. robotframework_testdoc-0.1.7/docs/style_robot.png +0 -0
  8. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/pyproject.toml +2 -2
  9. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/src/robotframework_testdoc.egg-info/PKG-INFO +27 -4
  10. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/src/robotframework_testdoc.egg-info/SOURCES.txt +4 -0
  11. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/src/testdoc/__main__.py +1 -0
  12. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/src/testdoc/cli.py +3 -0
  13. robotframework_testdoc-0.1.7/src/testdoc/default.toml +3 -0
  14. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/src/testdoc/helper/cliargs.py +1 -0
  15. robotframework_testdoc-0.1.7/src/testdoc/html/themes/theme_config.py +41 -0
  16. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/src/testdoc/parser/modifier/sourceprefixmodifier.py +43 -11
  17. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/src/testdoc/parser/modifier/suitefilemodifier.py +10 -26
  18. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/src/testdoc/parser/testcaseparser.py +1 -0
  19. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/src/testdoc/parser/testsuiteparser.py +4 -2
  20. robotframework_testdoc-0.1.4/src/testdoc/html/themes/theme_config.py +0 -27
  21. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/.github/workflows/release.yml +6 -6
  22. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/.gitignore +0 -0
  23. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/LICENSE +0 -0
  24. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/atest/config/testdoc.toml +0 -0
  25. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/atest/test_cli.py +0 -0
  26. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/atest/test_cli.robot +0 -0
  27. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/setup.cfg +0 -0
  28. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/src/robotframework_testdoc.egg-info/dependency_links.txt +0 -0
  29. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/src/robotframework_testdoc.egg-info/entry_points.txt +0 -0
  30. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/src/robotframework_testdoc.egg-info/requires.txt +0 -0
  31. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/src/robotframework_testdoc.egg-info/top_level.txt +0 -0
  32. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/src/testdoc/__init__.py +0 -0
  33. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/src/testdoc/helper/datetimeconverter.py +0 -0
  34. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/src/testdoc/helper/logger.py +0 -0
  35. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/src/testdoc/helper/pathconverter.py +0 -0
  36. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/src/testdoc/html/images/robotframework.svg +0 -0
  37. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/src/testdoc/html/templates/jinja_template_01.html +0 -0
  38. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/src/testdoc/html/themes/__init__.py +0 -0
  39. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/src/testdoc/html/themes/themes.py +0 -0
  40. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/src/testdoc/html_rendering/render.py +0 -0
  41. {robotframework_testdoc-0.1.4 → robotframework_testdoc-0.1.7}/src/testdoc/testdoc.py +0 -0
@@ -2,14 +2,19 @@ name: Build Python Package
2
2
 
3
3
  on:
4
4
  push:
5
+ branches:
6
+ - main
7
+ - '**'
5
8
  tags-ignore:
6
9
  - 'v*.*.*'
7
10
  paths:
11
+ - '**.yml'
8
12
  - '**.py'
9
13
  - '**.html'
10
14
  - pyproject.toml
11
15
  pull_request:
12
16
  paths:
17
+ - '**.yml'
13
18
  - '**.py'
14
19
  - '**.html'
15
20
  - pyproject.toml
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: robotframework-testdoc
3
- Version: 0.1.4
3
+ Version: 0.1.7
4
4
  Summary: A CLI Tool to generate a Test Documentation for your RobotFramework Test Scripts.
5
- Author-email: Marvin Klerx <marvinklerx1@gmail.com>
5
+ Author-email: Marvin Klerx <marvinklerx20@gmail.com>
6
6
  License: MIT
7
7
  Requires-Python: >=3.7
8
8
  Description-Content-Type: text/markdown
@@ -107,8 +107,8 @@ You can select between several themes (color configurations) for your HTML docum
107
107
 
108
108
  ### Default Themes
109
109
 
110
- There are a few predefined default themes available that you can choose via the toml-configuration file.
111
- Therefore, please use the following syntax:
110
+ There are a few predefined default themes available that you can choose via the toml-configuration file OR cli.
111
+ Therefore, please use the following syntax: for the toml file
112
112
  ```toml
113
113
  [colors]
114
114
  # Use the default theme
@@ -125,6 +125,15 @@ default = "robot"
125
125
  default = 3
126
126
  ```
127
127
 
128
+ For setting it via CLI, please use the following:
129
+ ```shell
130
+ # Applying dark theme
131
+ testdoc ... -S dark PATH OUTPUT_FILE
132
+
133
+ # Applying blue theme
134
+ testdoc ... --style blue PATH OUTPUT_FILE
135
+ ```
136
+
128
137
  > [!TIP]
129
138
  > You can select the default theme using either a string value or an integer value.
130
139
 
@@ -146,3 +155,17 @@ robot_icon = "#00ffb9"
146
155
 
147
156
  > [!TIP]
148
157
  > Please make sure to configure all available color values from this example — missing values may cause layout or rendering issues in the generated HTML document!
158
+
159
+ ### Default Themes - Screenshot
160
+
161
+ #### Dark
162
+
163
+ ![alt text](docs/style_dark.png)
164
+
165
+ #### Blue
166
+
167
+ ![alt text](docs/style_blue.png)
168
+
169
+ #### Robot / Default
170
+
171
+ ![alt text](docs/style_robot.png)
@@ -92,8 +92,8 @@ You can select between several themes (color configurations) for your HTML docum
92
92
 
93
93
  ### Default Themes
94
94
 
95
- There are a few predefined default themes available that you can choose via the toml-configuration file.
96
- Therefore, please use the following syntax:
95
+ There are a few predefined default themes available that you can choose via the toml-configuration file OR cli.
96
+ Therefore, please use the following syntax: for the toml file
97
97
  ```toml
98
98
  [colors]
99
99
  # Use the default theme
@@ -110,6 +110,15 @@ default = "robot"
110
110
  default = 3
111
111
  ```
112
112
 
113
+ For setting it via CLI, please use the following:
114
+ ```shell
115
+ # Applying dark theme
116
+ testdoc ... -S dark PATH OUTPUT_FILE
117
+
118
+ # Applying blue theme
119
+ testdoc ... --style blue PATH OUTPUT_FILE
120
+ ```
121
+
113
122
  > [!TIP]
114
123
  > You can select the default theme using either a string value or an integer value.
115
124
 
@@ -131,3 +140,17 @@ robot_icon = "#00ffb9"
131
140
 
132
141
  > [!TIP]
133
142
  > Please make sure to configure all available color values from this example — missing values may cause layout or rendering issues in the generated HTML document!
143
+
144
+ ### Default Themes - Screenshot
145
+
146
+ #### Dark
147
+
148
+ ![alt text](docs/style_dark.png)
149
+
150
+ #### Blue
151
+
152
+ ![alt text](docs/style_blue.png)
153
+
154
+ #### Robot / Default
155
+
156
+ ![alt text](docs/style_robot.png)
@@ -4,7 +4,7 @@ verbose_mode = true
4
4
 
5
5
  [colors]
6
6
  # DEFAULT THEME:
7
- default = "robot"
7
+ default = "dark"
8
8
  # OR CUSTOM THEME:
9
9
  # background = "#000028"
10
10
  # inner_color = "#000028"
@@ -4,11 +4,11 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "robotframework-testdoc"
7
- version = "0.1.4"
7
+ version = "0.1.7"
8
8
  description = "A CLI Tool to generate a Test Documentation for your RobotFramework Test Scripts."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.7"
11
- authors = [{ name = "Marvin Klerx", email = "marvinklerx1@gmail.com" }]
11
+ authors = [{ name = "Marvin Klerx", email = "marvinklerx20@gmail.com" }]
12
12
  license = { text = "MIT" }
13
13
 
14
14
  dependencies = [
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: robotframework-testdoc
3
- Version: 0.1.4
3
+ Version: 0.1.7
4
4
  Summary: A CLI Tool to generate a Test Documentation for your RobotFramework Test Scripts.
5
- Author-email: Marvin Klerx <marvinklerx1@gmail.com>
5
+ Author-email: Marvin Klerx <marvinklerx20@gmail.com>
6
6
  License: MIT
7
7
  Requires-Python: >=3.7
8
8
  Description-Content-Type: text/markdown
@@ -107,8 +107,8 @@ You can select between several themes (color configurations) for your HTML docum
107
107
 
108
108
  ### Default Themes
109
109
 
110
- There are a few predefined default themes available that you can choose via the toml-configuration file.
111
- Therefore, please use the following syntax:
110
+ There are a few predefined default themes available that you can choose via the toml-configuration file OR cli.
111
+ Therefore, please use the following syntax: for the toml file
112
112
  ```toml
113
113
  [colors]
114
114
  # Use the default theme
@@ -125,6 +125,15 @@ default = "robot"
125
125
  default = 3
126
126
  ```
127
127
 
128
+ For setting it via CLI, please use the following:
129
+ ```shell
130
+ # Applying dark theme
131
+ testdoc ... -S dark PATH OUTPUT_FILE
132
+
133
+ # Applying blue theme
134
+ testdoc ... --style blue PATH OUTPUT_FILE
135
+ ```
136
+
128
137
  > [!TIP]
129
138
  > You can select the default theme using either a string value or an integer value.
130
139
 
@@ -146,3 +155,17 @@ robot_icon = "#00ffb9"
146
155
 
147
156
  > [!TIP]
148
157
  > Please make sure to configure all available color values from this example — missing values may cause layout or rendering issues in the generated HTML document!
158
+
159
+ ### Default Themes - Screenshot
160
+
161
+ #### Dark
162
+
163
+ ![alt text](docs/style_dark.png)
164
+
165
+ #### Blue
166
+
167
+ ![alt text](docs/style_blue.png)
168
+
169
+ #### Robot / Default
170
+
171
+ ![alt text](docs/style_robot.png)
@@ -8,6 +8,9 @@ atest/test_cli.py
8
8
  atest/test_cli.robot
9
9
  atest/config/config_with_colors.toml
10
10
  atest/config/testdoc.toml
11
+ docs/style_blue.png
12
+ docs/style_dark.png
13
+ docs/style_robot.png
11
14
  src/robotframework_testdoc.egg-info/PKG-INFO
12
15
  src/robotframework_testdoc.egg-info/SOURCES.txt
13
16
  src/robotframework_testdoc.egg-info/dependency_links.txt
@@ -17,6 +20,7 @@ src/robotframework_testdoc.egg-info/top_level.txt
17
20
  src/testdoc/__init__.py
18
21
  src/testdoc/__main__.py
19
22
  src/testdoc/cli.py
23
+ src/testdoc/default.toml
20
24
  src/testdoc/testdoc.py
21
25
  src/testdoc/helper/cliargs.py
22
26
  src/testdoc/helper/datetimeconverter.py
@@ -1,3 +1,4 @@
1
1
  from testdoc.cli import main
2
+
2
3
  if __name__ == "__main__":
3
4
  main()
@@ -19,6 +19,7 @@ from .helper.cliargs import CommandLineArguments
19
19
  @click.option("--hide-suite-doc", is_flag=True, required=False, help="If given, suite documentation is hidden")
20
20
  @click.option("--hide-source", is_flag=True, required=False, help="If given, test suite/ test case source is hidden")
21
21
  @click.option("--hide-keywords", is_flag=True, required=False, help="If given, keyword calls in test cases are hidden")
22
+ @click.option("-S", "--style", required=False, help="Choose a predefined default style theme - 'default', 'robot', 'dark' or 'blue' ")
22
23
  @click.option("-c", "--configfile", required=False, help="Optional .toml configuration file (includes all cmd-args)")
23
24
  @click.option("-v", "--verbose", is_flag=True, required=False, help="More precise debugging into shell")
24
25
  @click.argument("PATH")
@@ -36,6 +37,7 @@ def main(
36
37
  hide_suite_doc,
37
38
  hide_source,
38
39
  hide_keywords,
40
+ style,
39
41
  configfile,
40
42
  verbose,
41
43
  path,
@@ -77,6 +79,7 @@ def main(
77
79
  "hide_source": hide_source or None,
78
80
  "hide_keywords": hide_keywords or None,
79
81
  "verbose_mode": verbose or None,
82
+ "style": style or None,
80
83
  "config_file": configfile or None,
81
84
  }
82
85
  args.suite_file = path
@@ -0,0 +1,3 @@
1
+ # Find here some default settings like the used default theme
2
+ [default]
3
+ theme = "dark"
@@ -19,6 +19,7 @@ class CommandLineArgumentsData:
19
19
  config_file: str = None
20
20
  verbose_mode: bool = False
21
21
  suite_file: str = None
22
+ style: str = None
22
23
  output_file: str = None
23
24
  colors: dict = None
24
25
 
@@ -0,0 +1,41 @@
1
+ from ...helper.cliargs import CommandLineArguments
2
+ from .themes import DEFAULT_THEME, ROBOT_THEME, DARK_THEME, BLUE_THEME
3
+
4
+ import os
5
+ import tomli
6
+
7
+ class ThemeConfig():
8
+
9
+ default_config = os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "..", "default.toml")
10
+
11
+ def __init__(self):
12
+ self.args = CommandLineArguments().data
13
+ with open(self.default_config, "rb") as file:
14
+ self.config = tomli.load(file)
15
+
16
+ #######################################################################################################
17
+
18
+ def theme(self):
19
+ _cli_style = self.args.style
20
+ if _cli_style:
21
+ return self._get_predefined_theme(_cli_style)
22
+ _toml_theme = self.args.colors
23
+ if _toml_theme:
24
+ if "default" in _toml_theme:
25
+ return self._get_predefined_theme(_toml_theme.get("default"))
26
+ return _toml_theme
27
+ return self._get_predefined_theme(self.config["default"]["theme"])
28
+
29
+ #######################################################################################################
30
+
31
+ def _get_predefined_theme(self, theme: str):
32
+ theme = theme.strip()
33
+ if theme == "default" or theme == 0:
34
+ return DEFAULT_THEME
35
+ if theme == "dark" or theme == 1:
36
+ return DARK_THEME
37
+ if theme == "robot" or theme == 2:
38
+ return ROBOT_THEME
39
+ if theme == "blue" or theme == 3:
40
+ return BLUE_THEME
41
+
@@ -1,23 +1,45 @@
1
1
  import os
2
+ from abc import ABC, abstractmethod
2
3
 
3
4
  from robot.api import TestSuite
4
5
 
5
6
  from ...helper.cliargs import CommandLineArguments
6
7
  from ...helper.logger import Logger
7
8
 
9
+ available_implementations = "gitlab"
10
+
11
+ ########################################
12
+ # Interface
13
+ ########################################
14
+ class SourceModifier(ABC):
15
+ @abstractmethod
16
+ def apply(self, suite_dict, prefix):
17
+ pass
18
+
19
+ ########################################
20
+ # Factory
21
+ ########################################
22
+ class SourceModifierFactory:
23
+ @staticmethod
24
+ def get_modifier(prefix_type: str) -> SourceModifier:
25
+ if prefix_type.lower() == "gitlab":
26
+ return GitLabModifier()
27
+ # EXAMPLE Extension:
28
+ # elif prefix_type.lower() == "github":
29
+ # return GitHubModifier()
30
+ raise ValueError(
31
+ f"No source modifier found for type '{prefix_type}' - actually available implementation are:\n{available_implementations}"
32
+ )
33
+
34
+ ########################################
35
+ # Prefix Modifier - Implementation
36
+ ########################################
8
37
  class SourcePrefixModifier():
9
38
 
10
39
  GITLAB_CONNECTOR = "-/blob/main/"
11
40
 
12
41
  def __init__(self):
13
42
  self.args = CommandLineArguments().data
14
-
15
- def _modify(self, suite: TestSuite, prefix: str):
16
- prefix_type, prefix = self._prefix_validation(prefix)
17
- if "gitlab" in prefix_type:
18
- SourcePrefixGitLab()._apply_gitlab_source_to_suite(suite, prefix)
19
- else:
20
- raise ValueError(f"No matching source-prefix modifier found for: {prefix_type} with prefix: {prefix}")
21
43
 
22
44
  def _prefix_validation(self, prefix: str) -> list:
23
45
  if "::" not in prefix:
@@ -27,11 +49,16 @@ class SourcePrefixModifier():
27
49
 
28
50
  def modify_source_prefix(self, suite_object: TestSuite) -> TestSuite:
29
51
  Logger().LogKeyValue("Using Prefix for Source: ", self.args.sourceprefix, "yellow") if self.args.verbose_mode else None
52
+ prefix_type, prefix = self._prefix_validation(self.args.sourceprefix)
53
+ modifier = SourceModifierFactory.get_modifier(prefix_type)
30
54
  for suite in suite_object:
31
- self._modify(suite, self.args.sourceprefix)
55
+ modifier.apply(suite, prefix)
32
56
  return suite_object
33
57
 
34
- class SourcePrefixGitLab():
58
+ ########################################
59
+ # Low-Level Implementation for GitLab
60
+ ########################################
61
+ class GitLabModifier():
35
62
  """
36
63
  Source Prefix Modifier for "GitLab" Projects.
37
64
  Expected CMD Line Arg: "gitlab::prefix"
@@ -62,7 +89,7 @@ class SourcePrefixGitLab():
62
89
  rel_path = os.path.relpath(file_path, git_root).replace(os.sep, "/")
63
90
  return prefix.rstrip("/") + "/-/blob/" + git_branch + "/" + rel_path
64
91
 
65
- def _apply_gitlab_source_to_suite(self, suite_dict, prefix):
92
+ def apply(self, suite_dict, prefix):
66
93
  try:
67
94
  suite_dict["source"] = self._convert_to_gitlab_url(suite_dict["source"], prefix)
68
95
  except:
@@ -75,4 +102,9 @@ class SourcePrefixGitLab():
75
102
  test["source"] = "GitLink error"
76
103
 
77
104
  for sub_suite in suite_dict.get("sub_suites", []):
78
- self._apply_gitlab_source_to_suite(sub_suite, prefix)
105
+ self.apply(sub_suite, prefix)
106
+
107
+ ########################################
108
+ # Low-Level Implementation for ...
109
+ # [FUTURE EXTENSIONS LIKE GITHUB]
110
+ ########################################
@@ -18,9 +18,6 @@ class SuiteFileModifier():
18
18
  self.suite = suite_object
19
19
 
20
20
  # Modify generic params / hide some params
21
- self._modify_root_suite_name()
22
- self._modify_root_suite_doc()
23
- self._modify_root_suite_metadata()
24
21
  self._modify_tags()
25
22
  self._modify_test_doc()
26
23
  self._modify_suite_doc()
@@ -29,29 +26,16 @@ class SuiteFileModifier():
29
26
  return self.suite
30
27
 
31
28
  #############################################################################################################################
32
-
33
- def _modify_root_suite_name(self):
34
- if not self.args.name:
35
- return
36
- Logger().LogKeyValue("Modified Name of Root Suite: ", self.args.name, "yellow") if self.args.verbose_mode else None
37
- self.suite[0]["name"] = self.args.name
38
-
39
- #############################################################################################################################
40
-
41
- def _modify_root_suite_doc(self):
42
- if not self.args.doc:
43
- return
44
- Logger().LogKeyValue("Modified Doc of Root Suite: ", self.args.name, "yellow") if self.args.verbose_mode else None
45
- self.suite[0]["doc"] = self.args.doc
46
-
47
- #############################################################################################################################
48
-
49
- def _modify_root_suite_metadata(self):
50
- if not self.args.metadata:
51
- return
52
- Logger().LogKeyValue("Modified Metadata of Root Suite: ", self.args.metadata, "yellow") if self.args.verbose_mode else None
53
- formatted_metadata = "<br>".join([f"{k}: {v}" for k, v in self.args.metadata.items()])
54
- self.suite[0]["metadata"] = formatted_metadata
29
+
30
+ # Modify name, doc & metadata via officially provided robot api
31
+ def _modify_root_suite_details(self, suite: TestSuite):
32
+ if self.args.name:
33
+ suite.configure(name=self.args.name)
34
+ if self.args.doc:
35
+ suite.configure(doc=self.args.doc)
36
+ if self.args.metadata:
37
+ suite.configure(metadata=self.args.metadata)
38
+ return suite
55
39
 
56
40
  #############################################################################################################################
57
41
 
@@ -23,6 +23,7 @@ class TestCaseParser():
23
23
  suite_info["tests"].append(test_info)
24
24
  return suite_info
25
25
 
26
+ # Consider tags via officially provided robot api
26
27
  def consider_tags(self, suite: TestSuite) -> TestSuite:
27
28
  if len(self.args.include) > 0:
28
29
  suite.configure(include_tags=self.args.include)
@@ -2,6 +2,7 @@ import os
2
2
 
3
3
  from robot.api import SuiteVisitor, TestSuite
4
4
  from .testcaseparser import TestCaseParser
5
+ from .modifier.suitefilemodifier import SuiteFileModifier
5
6
 
6
7
  class RobotSuiteParser(SuiteVisitor):
7
8
  def __init__(self):
@@ -23,7 +24,7 @@ class RobotSuiteParser(SuiteVisitor):
23
24
  "total_tests": 0,
24
25
  "tests": [],
25
26
  "sub_suites": [],
26
- "metadata": None
27
+ "metadata": "<br>".join([f"{k}: {v}" for k, v in suite.metadata.items()]) if suite.metadata else None
27
28
  }
28
29
 
29
30
  # Parse Test Cases
@@ -39,6 +40,7 @@ class RobotSuiteParser(SuiteVisitor):
39
40
  def parse_suite(self, suite_path):
40
41
  suite = TestSuite.from_file_system(suite_path)
41
42
  suite = TestCaseParser().consider_tags(suite)
43
+ suite = SuiteFileModifier()._modify_root_suite_details(suite)
42
44
  suite.visit(self)
43
45
  return self.suites
44
46
 
@@ -65,4 +67,4 @@ class RobotSuiteParser(SuiteVisitor):
65
67
  def _already_parsed(self, suite):
66
68
  existing_suite = next((s for s in self.suites if s["name"] == suite.name), None)
67
69
  if existing_suite:
68
- return
70
+ return
@@ -1,27 +0,0 @@
1
- from ...helper.cliargs import CommandLineArguments
2
- from .themes import DEFAULT_THEME, ROBOT_THEME, DARK_THEME, BLUE_THEME
3
-
4
- class ThemeConfig():
5
-
6
- def __init__(self):
7
- self.args = CommandLineArguments().data
8
-
9
- def theme(self):
10
- _theme = self.args.colors
11
- if _theme:
12
- if "default" in _theme:
13
- return self._get_predefined_theme(_theme.get("default"))
14
- return _theme
15
- return DARK_THEME
16
-
17
- def _get_predefined_theme(self, theme: str):
18
- theme = theme.strip()
19
- if theme == "default" or theme == 0:
20
- return DEFAULT_THEME
21
- if theme == "dark" or theme == 1:
22
- return DARK_THEME
23
- if theme == "robot" or theme == 2:
24
- return ROBOT_THEME
25
- if theme == "blue" or theme == 3:
26
- return BLUE_THEME
27
-
@@ -40,12 +40,6 @@ jobs:
40
40
  - name: Build Package
41
41
  run: python -m build
42
42
 
43
- - name: Publish to PyPI
44
- env:
45
- TWINE_USERNAME: __token__
46
- TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
47
- run: twine upload dist/*
48
-
49
43
  - name: Create GitHub Release
50
44
  uses: softprops/action-gh-release@v1
51
45
  with:
@@ -53,3 +47,9 @@ jobs:
53
47
  env:
54
48
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
55
49
 
50
+ - name: Publish to PyPI
51
+ env:
52
+ TWINE_USERNAME: __token__
53
+ TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
54
+ run: twine upload dist/*
55
+