azdev 0.1.89__tar.gz → 0.1.90__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.
- {azdev-0.1.89 → azdev-0.1.90}/HISTORY.rst +4 -0
- {azdev-0.1.89/azdev.egg-info → azdev-0.1.90}/PKG-INFO +5 -1
- {azdev-0.1.89 → azdev-0.1.90}/azdev/__init__.py +1 -1
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/linter/rules/command_coverage_rules.py +1 -1
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/regex.py +3 -2
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/testtool/__init__.py +17 -10
- {azdev-0.1.89 → azdev-0.1.90/azdev.egg-info}/PKG-INFO +5 -1
- {azdev-0.1.89 → azdev-0.1.90}/LICENSE +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/MANIFEST.in +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/README.md +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/README.rst +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/__main__.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/commands.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/completer.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/config/__init__.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/config/cli.flake8 +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/config/cli_pylintrc +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/config/ext.flake8 +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/config/ext_pylintrc +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/help.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/mod_templates/HISTORY.rst +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/mod_templates/README.rst +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/mod_templates/_client_factory.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/mod_templates/_help.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/mod_templates/_params.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/mod_templates/_validators.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/mod_templates/azext_metadata.json +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/mod_templates/blank__init__.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/mod_templates/commands.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/mod_templates/custom.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/mod_templates/module__init__.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/mod_templates/pkg_declare__init__.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/mod_templates/setup.cfg +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/mod_templates/setup.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/mod_templates/test_service_scenario.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/__init__.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/breaking_change/__init__.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/breaking_change/markdown_template.jinja2 +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/cmdcov/__init__.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/cmdcov/_macros.j2 +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/cmdcov/cmdcov.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/cmdcov/component.css +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/cmdcov/component.js +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/cmdcov/favicon.ico +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/cmdcov/index.j2 +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/cmdcov/index2.j2 +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/cmdcov/module.j2 +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/code_gen.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/command_change/__init__.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/command_change/custom.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/command_change/util.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/constant.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/extensions/__init__.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/extensions/util.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/extensions/version_upgrade.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/help/__init__.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/help/refdoc/__init__.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/help/refdoc/conf.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/legal.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/linter/__init__.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/linter/linter.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/linter/pylint_checkers/__init__.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/linter/pylint_checkers/show_command.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/linter/rule_decorators.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/linter/rules/__init__.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/linter/rules/ci_exclusions.yml +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/linter/rules/command_group_rules.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/linter/rules/command_rules.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/linter/rules/help_rules.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/linter/rules/linter_exclusions.yml +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/linter/rules/parameter_rules.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/linter/util.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/performance.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/pypi.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/python_sdk.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/resource.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/secret.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/setup.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/statistics/__init__.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/statistics/util.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/style.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/testtool/incremental_strategy.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/testtool/profile_context.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/operations/testtool/pytest_runner.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/params.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/transformers.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/utilities/__init__.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/utilities/command.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/utilities/config.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/utilities/const.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/utilities/display.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/utilities/git_util.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/utilities/path.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/utilities/pypi.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/utilities/testing.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev/utilities/tools.py +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev.egg-info/SOURCES.txt +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev.egg-info/dependency_links.txt +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev.egg-info/entry_points.txt +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev.egg-info/requires.txt +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/azdev.egg-info/top_level.txt +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/pyproject.toml +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/setup.cfg +0 -0
- {azdev-0.1.89 → azdev-0.1.90}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: azdev
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.90
|
|
4
4
|
Summary: Microsoft Azure CLI Developer Tools
|
|
5
5
|
Home-page: https://github.com/Azure/azure-cli-dev-tools
|
|
6
6
|
Author: Microsoft Corporation
|
|
@@ -148,6 +148,10 @@ License
|
|
|
148
148
|
|
|
149
149
|
Release History
|
|
150
150
|
===============
|
|
151
|
+
0.1.90
|
|
152
|
+
++++++
|
|
153
|
+
* `azdev cmdcov`: Fix incorrect detection of code changes as new commands
|
|
154
|
+
|
|
151
155
|
0.1.89
|
|
152
156
|
++++++
|
|
153
157
|
* `azdev scan/mask`: Add `--continue-on-failure` support
|
|
@@ -8,7 +8,7 @@ from ..rule_decorators import CommandCoverageRule
|
|
|
8
8
|
from ..linter import RuleError, LinterSeverity
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
@CommandCoverageRule(LinterSeverity.
|
|
11
|
+
@CommandCoverageRule(LinterSeverity.MEDIUM)
|
|
12
12
|
def missing_command_test_coverage(linter):
|
|
13
13
|
exec_state, violations = linter.get_command_test_coverage()
|
|
14
14
|
if not exec_state:
|
|
@@ -144,6 +144,7 @@ def search_argument(line):
|
|
|
144
144
|
def search_command_group(row_num, lines, command):
|
|
145
145
|
cmd = ''
|
|
146
146
|
while row_num > 0:
|
|
147
|
+
row_num = len(lines) - 1 if row_num >= len(lines) else row_num
|
|
147
148
|
row_num -= 1
|
|
148
149
|
# Match `with self.command_group('local-context',` and `with self.command_group('xxx')`
|
|
149
150
|
sub_pattern = r'with self.command_group\(\'(.*?)\',?'
|
|
@@ -166,8 +167,8 @@ def search_command(line):
|
|
|
166
167
|
|
|
167
168
|
def search_deleted_command(line):
|
|
168
169
|
command = ''
|
|
169
|
-
# Match
|
|
170
|
-
pattern = r'
|
|
170
|
+
# Match `[-!] g.*command(xxx)`
|
|
171
|
+
pattern = r'[-!]\s+g.(?:\w+)?command\((.*)\)'
|
|
171
172
|
ref = re.findall(pattern, line)
|
|
172
173
|
if ref:
|
|
173
174
|
command = ref[0].split(',')[0].strip("'")
|
|
@@ -44,8 +44,7 @@ def run_tests(tests, xml_path=None, discover=False, in_series=False,
|
|
|
44
44
|
heading('Run Tests')
|
|
45
45
|
|
|
46
46
|
path_table = get_path_table()
|
|
47
|
-
|
|
48
|
-
test_index = _get_test_index(profile or current_profile(), discover)
|
|
47
|
+
target_tests = set()
|
|
49
48
|
|
|
50
49
|
if not tests:
|
|
51
50
|
tests = list(path_table['mod'].keys()) + list(path_table['core'].keys()) + list(path_table['ext'].keys())
|
|
@@ -53,6 +52,10 @@ def run_tests(tests, xml_path=None, discover=False, in_series=False,
|
|
|
53
52
|
tests = list(path_table['mod'].keys()) + list(path_table['core'].keys())
|
|
54
53
|
elif tests == ['EXT']:
|
|
55
54
|
tests = list(path_table['ext'].keys())
|
|
55
|
+
else:
|
|
56
|
+
target_tests = set(tests)
|
|
57
|
+
|
|
58
|
+
test_index = _get_test_index(profile or current_profile(), discover, target_tests=target_tests)
|
|
56
59
|
|
|
57
60
|
# filter out tests whose modules haven't changed
|
|
58
61
|
modified_mods = _filter_by_git_diff(tests, test_index, git_source, git_target, git_repo)
|
|
@@ -193,7 +196,7 @@ def _discover_module_tests(mod_name, mod_data):
|
|
|
193
196
|
|
|
194
197
|
|
|
195
198
|
# pylint: disable=too-many-statements, too-many-locals
|
|
196
|
-
def _discover_tests(profile):
|
|
199
|
+
def _discover_tests(profile, target_tests):
|
|
197
200
|
""" Builds an index of tests so that the user can simply supply the name they wish to test instead of the
|
|
198
201
|
full path.
|
|
199
202
|
"""
|
|
@@ -274,13 +277,17 @@ def _discover_tests(profile):
|
|
|
274
277
|
mod2 = extract_module_name(test_index[key])
|
|
275
278
|
if mod1 != mod2:
|
|
276
279
|
# resolve conflicted keys by prefixing with the module name and a dot (.)
|
|
277
|
-
|
|
278
|
-
|
|
280
|
+
if key in target_tests or mod1 in target_tests or mod2 in target_tests:
|
|
281
|
+
logger.warning("'%s' exists in both '%s' and '%s'. Resolve using `%s.%s` or `%s.%s`"
|
|
282
|
+
"Duplication exists in: \n\t%s\n\t%s\n",
|
|
283
|
+
key, mod1, mod2, mod1, key, mod2, key, path, test_index[key])
|
|
279
284
|
test_index['{}.{}'.format(mod1, key)] = path
|
|
280
285
|
test_index['{}.{}'.format(mod2, key)] = test_index[key]
|
|
281
286
|
else:
|
|
282
|
-
|
|
283
|
-
|
|
287
|
+
if key in target_tests or mod1 in target_tests:
|
|
288
|
+
logger.error("'%s' exists twice in the '%s' module. "
|
|
289
|
+
"Please rename one or both and re-run --discover. "
|
|
290
|
+
"Duplication exists in: \n\t%s\n\t%s\n", key, mod1, test_index[key], path)
|
|
284
291
|
else:
|
|
285
292
|
test_index[key] = path
|
|
286
293
|
|
|
@@ -310,14 +317,14 @@ def _discover_tests(profile):
|
|
|
310
317
|
return test_index
|
|
311
318
|
|
|
312
319
|
|
|
313
|
-
def _get_test_index(profile, discover):
|
|
320
|
+
def _get_test_index(profile, discover, target_tests):
|
|
314
321
|
config_dir = get_azdev_config_dir()
|
|
315
322
|
test_index_dir = os.path.join(config_dir, 'test_index')
|
|
316
323
|
make_dirs(test_index_dir)
|
|
317
324
|
test_index_path = os.path.join(test_index_dir, '{}.json'.format(profile))
|
|
318
325
|
test_index = {}
|
|
319
326
|
if discover:
|
|
320
|
-
test_index = _discover_tests(profile)
|
|
327
|
+
test_index = _discover_tests(profile, target_tests)
|
|
321
328
|
with open(test_index_path, 'w') as f:
|
|
322
329
|
f.write(json.dumps(test_index))
|
|
323
330
|
display('\ntest index updated: {}'.format(test_index_path))
|
|
@@ -326,7 +333,7 @@ def _get_test_index(profile, discover):
|
|
|
326
333
|
test_index = json.loads(''.join(f.readlines()))
|
|
327
334
|
display('\ntest index found: {}'.format(test_index_path))
|
|
328
335
|
else:
|
|
329
|
-
test_index = _discover_tests(profile)
|
|
336
|
+
test_index = _discover_tests(profile, target_tests)
|
|
330
337
|
with open(test_index_path, 'w') as f:
|
|
331
338
|
f.write(json.dumps(test_index))
|
|
332
339
|
display('\ntest index created: {}'.format(test_index_path))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: azdev
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.90
|
|
4
4
|
Summary: Microsoft Azure CLI Developer Tools
|
|
5
5
|
Home-page: https://github.com/Azure/azure-cli-dev-tools
|
|
6
6
|
Author: Microsoft Corporation
|
|
@@ -148,6 +148,10 @@ License
|
|
|
148
148
|
|
|
149
149
|
Release History
|
|
150
150
|
===============
|
|
151
|
+
0.1.90
|
|
152
|
+
++++++
|
|
153
|
+
* `azdev cmdcov`: Fix incorrect detection of code changes as new commands
|
|
154
|
+
|
|
151
155
|
0.1.89
|
|
152
156
|
++++++
|
|
153
157
|
* `azdev scan/mask`: Add `--continue-on-failure` support
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|