Skip to content

Commit d2b1ae5

Browse files
authored
Merge pull request #12 from chhsiao1981/pytest
update test framework as pytest
2 parents f0be8f6 + 0fec123 commit d2b1ae5

5 files changed

Lines changed: 83 additions & 40 deletions

File tree

README.md

Lines changed: 52 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,59 @@
1-
cc_python_template
2-
==========
1+
# cc-python-template
2+
33
cookiecutter python template (pkgs, modules and tests)
44

5-
git clone https://github.com/chhsiao1981/cc_python_template.git .cc; ./.cc/scripts/init_dev.sh; . __/bin/activate
5+
git clone https://github.com/chhsiao1981/cc-python-template.git .cc && ./.cc/scripts/init_dev.sh && source __/bin/activate
66

77
* create module: ./scripts/dev_module.sh
88

9-
Introduction
10-
-----
11-
This template intends to efficiently develop with the following libraries:
12-
13-
* cookiecutter
9+
## Introduction
1410

11+
This template intends to facilitate the efficient development of Python projects with [cookiecutter](https://github.com/cookiecutter/cookiecutter).
1512
All are welcome to improve this template.
13+
14+
As specified in [gen.py](https://github.com/chhsiao1981/cc-python-template/blob/main/gen.py),
15+
currently the following variables are defined (using `a.b.c.d` in the project directory `awesome-project` as an example):
16+
17+
* `pkg`: (ex: `awesome_project.a.b.c`)
18+
* `module`: (ex: `d`)
19+
* `pkg_name`: (ex: `awesome_project.a.b.c`)
20+
* `project_name`: (ex: `awesome_project`)
21+
* `project_name_with_dash`: (ex: `awesome-project`)
22+
* `include_pkg`: (ex: `awesome_project.a.b.c`)
23+
* `package_dir`: (ex: `awesome_project/a/b/c`)
24+
* `include_package_dir`: (ex: `awesome_project/a/b/c`)
25+
* `test_package_dir`: (ex: `test_a/test_b/test_c`)
26+
27+
Uppercase:
28+
* `PKG`: UPPERCASE of `pkg` (ex: `AWESOME_PROJECT.A.B.C`)
29+
* `MODULE`: UPPERCASE of `module` (ex: `D`)
30+
* `PROJECT` UpperCamelCase of `project_name` (ex: `AwesomeProject`)
31+
* `PKG_NAME`: UPPERCASE of `pkg_name` (ex: `AWESOME_PROJECT.A.B.C`)
32+
* `PROJECT_NAME` UpperCamelCase of `project_name` (ex: `AwesomeProject`)
33+
* `INCLUDE_PKG`: UPPERCASE of `include_pkg` (ex: `AWESOME_PROJECT.A.B.C`)
34+
* `PACKAGE_DIR`: UPPERCASE of `package_dir` (ex: `AWESOME_PROJECT/A/B/C`)
35+
* `include_package_dir`: UPPERCASE of `include_package_dir` (ex: `AWESOME_PROJECT/A/B/C`)
36+
* `test_package_dir`: UPPERCASE of `test_package_dir` (ex: `TEST_A/TEST_B/TEST_C`)
37+
38+
UpperCamelCase:
39+
* `Pkg`: UpperCamelCase of `pkg` (ex: `AwesomeProject.A.B.C`)
40+
* `Module`: UpperCamelCase of `module` (ex: `D`)
41+
* `Project` UpperCamelCase of `project_name` (ex: `AwesomeProject`)
42+
* `PkgName`: UpperCamelCase of `pkg_name` (ex: `AwesomeProject.A.B.C`)
43+
* `ProjectName` UpperCamelCase of `project_name` (ex: `AwesomeProject`)
44+
* `IncludePkg`: UpperCamelCase of `include_pkg` (ex: `AwesomeProject.A.B.C`)
45+
* `PackageDir`: UpperCamelCase of `package_dir` (ex: `AwesomeProject/A/B/C`)
46+
* `IncludePackageDir`: UpperCamelCase of `include_package_dir` (ex: `AwesomeProject/A/B/C`)
47+
* `TestPackageDir`: UpperCamelCase of `test_package_dir` (ex: `TestA/TestB/TestC`)
48+
49+
camelCase:
50+
* `pkgCamel`: camelCase of `pkg` (ex: `awesomeProject.A.B.C`)
51+
* `moduleCamel`: camelCase of `module` (ex: `D`)
52+
* `projectCamel` camelCase of `project_name` (ex: `awesomeProject`)
53+
* `pkgName`: camelCase of `pkg_name` (ex: `awesomeProject.A.B.C`)
54+
* `projectName` camelCase of `project_name` (ex: `awesomeProject`)
55+
* `includePkg`: camelCase of `include_pkg` (ex: `awesomeProject.A.B.C`)
56+
* `packageDir`: camelCase of `package_dir` (ex: `awesomeProject/A/B/C`)
57+
* `includePackageDir`: camelCase of `include_package_dir` (ex: `awesomeProject/A/B/C`)
58+
* `testPackageDir`: camelCase of `test_package_dir` (ex: `testA/testB/testC`)
59+

cookiecutter.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@
3333
"IncludePackageDir": "",
3434
"TestPackageDir": "",
3535

36-
"pkgLCamel": "",
37-
"moduleLCamel": "",
38-
"projectLCamel": "",
36+
"pkgCamel": "",
37+
"moduleCamel": "",
38+
"projectCamel": "",
3939
"pkgName": "",
4040
"projectName": "",
4141
"includePkg": "",

gen.py

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,17 @@ def underscore_to_uppercase(the_str):
1919
return the_str.upper()
2020

2121

22-
def underscore_to_camelcase(the_str):
22+
def underscore_to_upper_camelcase(the_str):
2323
the_list = the_str.split('_')
2424
return ''.join([each_str.title() for each_str in the_list])
2525

2626

27-
def underscore_to_lower_camelcase(the_str):
27+
def underscore_to_camelcase(the_str):
2828
the_list = the_str.split('_')
2929
return the_list[0] + ''.join([each_str.title() for each_str in the_list[1:]])
3030

3131

32-
the_module = sys.argv[1]
32+
cc_module = sys.argv[1]
3333
full_name = sys.argv[2]
3434
project_with_dash = os.path.basename(os.getcwd())
3535
project = dash_to_underscore(project_with_dash)
@@ -66,37 +66,37 @@ def underscore_to_lower_camelcase(the_str):
6666

6767
'PKG': underscore_to_uppercase(pkg),
6868
'MODULE': underscore_to_uppercase(module),
69-
'PROJECT': underscore_to_camelcase(project),
69+
'PROJECT': underscore_to_upper_camelcase(project),
7070
'PKG_NAME': underscore_to_uppercase(pkg_name),
71-
'PROJECT_NAME': underscore_to_camelcase(project_name),
71+
'PROJECT_NAME': underscore_to_upper_camelcase(project_name),
7272
'INCLUDE_PKG': underscore_to_uppercase(include_pkg),
7373
'PACKAGE_DIR': underscore_to_uppercase(package_dir),
7474
'INCLUDE_PACKAGE_DIR': underscore_to_uppercase(include_package_dir),
7575
'TEST_PACKAGE_DIR': underscore_to_uppercase(test_package_dir),
7676

77-
'Pkg': underscore_to_camelcase(pkg),
78-
'Module': underscore_to_camelcase(module),
79-
'Project': underscore_to_camelcase(project),
80-
'PkgName': underscore_to_camelcase(pkg_name),
81-
'ProjectName': underscore_to_camelcase(project_name),
82-
'IncludePkg': underscore_to_camelcase(include_pkg),
83-
'PackageDir': underscore_to_camelcase(package_dir),
84-
'IncludePackageDir': underscore_to_camelcase(include_package_dir),
85-
'TestPackageDir': underscore_to_camelcase(test_package_dir),
86-
87-
'pkgLCamel': underscore_to_lower_camelcase(pkg),
88-
'moduleLCamel': underscore_to_lower_camelcase(module),
89-
'projectLCamel': underscore_to_lower_camelcase(project),
90-
'pkgName': underscore_to_lower_camelcase(pkg_name),
91-
'projectName': underscore_to_lower_camelcase(project_name),
92-
'includePkg': underscore_to_lower_camelcase(include_pkg),
93-
'packageDir': underscore_to_lower_camelcase(package_dir),
94-
'includePackageDir': underscore_to_lower_camelcase(include_package_dir),
95-
'testPackageDir': underscore_to_lower_camelcase(test_package_dir)
77+
'Pkg': underscore_to_upper_camelcase(pkg),
78+
'Module': underscore_to_upper_camelcase(module),
79+
'Project': underscore_to_upper_camelcase(project),
80+
'PkgName': underscore_to_upper_camelcase(pkg_name),
81+
'ProjectName': underscore_to_upper_camelcase(project_name),
82+
'IncludePkg': underscore_to_upper_camelcase(include_pkg),
83+
'PackageDir': underscore_to_upper_camelcase(package_dir),
84+
'IncludePackageDir': underscore_to_upper_camelcase(include_package_dir),
85+
'TestPackageDir': underscore_to_upper_camelcase(test_package_dir),
86+
87+
'pkgCamel': underscore_to_camelcase(pkg),
88+
'moduleCamel': underscore_to_camelcase(module),
89+
'projectCamel': underscore_to_camelcase(project),
90+
'pkgName': underscore_to_camelcase(pkg_name),
91+
'projectName': underscore_to_camelcase(project_name),
92+
'includePkg': underscore_to_camelcase(include_pkg),
93+
'packageDir': underscore_to_camelcase(package_dir),
94+
'includePackageDir': underscore_to_camelcase(include_package_dir),
95+
'testPackageDir': underscore_to_camelcase(test_package_dir)
9696
}
9797

9898
cookiecutter(
99-
'.cc/' + the_module,
99+
'.cc/' + cc_module,
100100
extra_context=the_dict,
101101
no_input=True,
102102
overwrite_if_exists=True,

requirements-dev.txt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,2 @@
11
cookiecutter==1.7.3
2-
nose==1.3.7
3-
rednose==1.3.0
4-
sniffer==0.4.1
2+
pytest==7.4.3

scripts/test.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
#!/bin/bash
22

3-
nosetests --rednose -v -e _flymake.py
3+
pytest -W ignore::DeprecationWarning
4+

0 commit comments

Comments
 (0)