-
Notifications
You must be signed in to change notification settings - Fork 377
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #3932 from Szelethus/nose_to_pytest_web_granular
[test][NFC] Change from nose to pytest (web library)
- Loading branch information
Showing
86 changed files
with
2,685 additions
and
2,926 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
# coding=utf-8 | ||
# ------------------------------------------------------------------------- | ||
# | ||
# Part of the CodeChecker project, under the Apache License v2.0 with | ||
# LLVM Exceptions. See LICENSE for license information. | ||
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | ||
# | ||
# ------------------------------------------------------------------------- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,169 @@ | ||
# | ||
# ------------------------------------------------------------------------- | ||
# | ||
# Part of the CodeChecker project, under the Apache License v2.0 with | ||
# LLVM Exceptions. See LICENSE for license information. | ||
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | ||
# | ||
# ------------------------------------------------------------------------- | ||
|
||
""" $TEST_NAME$ function test. | ||
WARNING!!! | ||
This is a generated test skeleton remove the parts not required by the tests. | ||
WARNING!!! | ||
""" | ||
|
||
|
||
import os | ||
import shutil | ||
import unittest | ||
import uuid | ||
|
||
from libtest import codechecker | ||
from libtest import env | ||
from libtest import project | ||
|
||
|
||
class TestSkeleton(unittest.TestCase): | ||
|
||
_ccClient = None | ||
|
||
def setup_class(self): | ||
"""Setup the environment for testing $TEST_NAME$.""" | ||
|
||
global TEST_WORKSPACE | ||
TEST_WORKSPACE = env.get_workspace('$TEST_NAME$') | ||
|
||
# Set the TEST_WORKSPACE used by the tests. | ||
os.environ['TEST_WORKSPACE'] = TEST_WORKSPACE | ||
|
||
# Get the clang version which is used for testing. | ||
# Important because different clang releases might | ||
# find different errors. | ||
clang_version = env.clang_to_test() | ||
|
||
test_config = {} | ||
|
||
test_project = 'cpp' | ||
|
||
project_info = project.get_info(test_project) | ||
|
||
# Copy the test project to the workspace. The tests should | ||
# work only on this test project. | ||
test_proj_path = os.path.join(TEST_WORKSPACE, "test_proj") | ||
shutil.copytree(project.path(test_project), test_proj_path) | ||
|
||
project_info['project_path'] = test_proj_path | ||
|
||
# Generate a unique name for this test run. | ||
test_project_name = project_info['name'] + '_' + uuid.uuid4().hex | ||
|
||
test_config['test_project'] = project_info | ||
|
||
# Suppress file should be set here if needed by the tests. | ||
suppress_file = None | ||
|
||
# Skip list file should be set here if needed by the tests. | ||
skip_list_file = None | ||
|
||
# Get an environment which should be used by the tests. | ||
test_env = env.test_env(TEST_WORKSPACE) | ||
|
||
# Create a basic CodeChecker config for the tests, this should | ||
# be imported by the tests and they should only depend on these | ||
# configuration options. | ||
codechecker_cfg = { | ||
'suppress_file': suppress_file, | ||
'skip_list_file': skip_list_file, | ||
'check_env': test_env, | ||
'workspace': TEST_WORKSPACE, | ||
'checkers': [], | ||
'analyzers': ['clangsa', 'clang-tidy'] | ||
} | ||
|
||
# Start or connect to the running CodeChecker server and get connection | ||
# details. | ||
print("This test uses a CodeChecker server... connecting...") | ||
server_access = codechecker.start_or_get_server() | ||
server_access['viewer_product'] = '$TEST_NAME$' | ||
codechecker.add_test_package_product(server_access, TEST_WORKSPACE) | ||
|
||
# Extend the checker configuration with the server access. | ||
codechecker_cfg.update(server_access) | ||
|
||
# Clean the test project, if needed by the tests. | ||
ret = project.clean(test_project) | ||
if ret: | ||
sys.exit(ret) | ||
|
||
# Check the test project, if needed by the tests. | ||
ret = codechecker.check_and_store(codechecker_cfg, | ||
test_project_name, | ||
project.path(test_project)) | ||
if ret: | ||
sys.exit(1) | ||
print("Analyzing the test project was successful.") | ||
|
||
# Save the run names in the configuration. | ||
codechecker_cfg['run_names'] = [test_project_name] | ||
|
||
test_config['codechecker_cfg'] = codechecker_cfg | ||
|
||
# Export the test configuration to the workspace. | ||
env.export_test_cfg(TEST_WORKSPACE, test_config) | ||
|
||
|
||
def teardown_class(self): | ||
"""Clean up after the test.""" | ||
|
||
# TODO: If environment variable is set keep the workspace | ||
# and print out the path. | ||
global TEST_WORKSPACE | ||
|
||
check_env = env.import_test_cfg(TEST_WORKSPACE)[ | ||
'codechecker_cfg']['check_env'] | ||
codechecker.remove_test_package_product(TEST_WORKSPACE, check_env) | ||
|
||
print("Removing: " + TEST_WORKSPACE) | ||
shutil.rmtree(TEST_WORKSPACE, ignore_errors=True) | ||
|
||
def setup_method(self, method): | ||
""" | ||
WARNING!!! | ||
This is an example how to get the configurations needed by the tests. | ||
WARNING!!! | ||
""" | ||
|
||
# TEST_WORKSPACE is automatically set by test package __init__.py . | ||
test_workspace = os.environ['TEST_WORKSPACE'] | ||
|
||
test_class = self.__class__.__name__ | ||
print('Running ' + test_class + ' tests in ' + test_workspace) | ||
|
||
# Get the test configuration from the prepared int the test workspace. | ||
test_cfg = env.import_test_cfg(test_workspace) | ||
|
||
# Get the test project configuration from the prepared test workspace. | ||
self._testproject_data = env.setup_test_proj_cfg(test_workspace) | ||
self.assertIsNotNone(self._testproject_data) | ||
|
||
# Setup a viewer client to test viewer API calls. | ||
self._cc_client = env.setup_viewer_client(test_workspace) | ||
self.assertIsNotNone(self._cc_client) | ||
|
||
# Get the CodeChecker cmd if needed for the tests. | ||
self._codechecker_cmd = env.codechecker_cmd() | ||
|
||
# Get the run names which belong to this test. | ||
run_names = env.get_run_names(test_workspace) | ||
|
||
runs = self._cc_client.getRunData(None, None, 0, None) | ||
test_runs = [run for run in runs if run.name in run_names] | ||
|
||
def test_skel(self): | ||
""" | ||
Test some feature. | ||
""" | ||
pass |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
[pytest] | ||
|
||
addopts = | ||
# increase verbosity level | ||
--verbose | ||
|
||
# stop running tests on first error | ||
# FIXME: Pretty please comment this horrible setting out, I hate it with a | ||
# passion | ||
# --maxfail=1 | ||
|
||
# do not capture stdout | ||
--capture=fd |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.