123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210 |
- #!/usr/bin/env python3
- # -*- coding: UTF-8 -*-
-
- import os
- import stat
-
- name = os.path.basename(os.path.abspath('.'))
-
- gitignore = """# general stuff
- *~
- unittest/testresults/*
- unittest/output_data/*
-
- # eclipse stuff
- .settings/
-
- # Byte-compiled / optimized / DLL files
- __pycache__/
- *.py[cod]
-
- # C extensions
- *.so
-
- # Distribution / packaging
- .Python
- env/
- build/
- develop-eggs/
- dist/
- downloads/
- eggs/
- .eggs/
- lib/
- lib64/
- parts/
- sdist/
- var/
- *.egg-info/
- .installed.cfg
- *.egg
-
- # PyInstaller
- # Usually these files are written by a python script from a template
- # before PyInstaller builds the exe, so as to inject date/other infos into it.
- *.manifest
- *.spec
-
- # Installer logs
- pip-log.txt
- pip-delete-this-directory.txt
-
- # Unit test / coverage reports
- htmlcov/
- .tox/
- .coverage
- .coverage.*
- .cache
- nosetests.xml
- coverage.xml
- *,cover
-
- # Translations
- *.mo
- *.pot
-
- # Django stuff:
- *.log
-
- # Sphinx documentation
- docs/_build/
-
- # PyBuilder
- target/
- """
-
- unittest_py = """#!/usr/bin/env python
- # -*- coding: utf-8 -*-
- #
-
- import optparse
- import os
- import report
- import unittest
- import tests
-
- parser = optparse.OptionParser("usage: %prog [clean|run|coverage|pdf|copy|release]")
- parser.add_option("-e", "--execution-level", dest="execution_level", default="full", help="sets the execution level [full | short | smoke | single]")
- (options, args) = parser.parse_args()
-
-
- if report.TCEL_REVERSE_NAMED.get(tests.execution_level, report.TCEL_FULL) < report.TCEL_REVERSE_NAMED.get(options.execution_level, report.TCEL_FULL):
- options.execution_level = tests.execution_level
-
- unittest.run.unittest(options, args, os.path.dirname(os.path.abspath(os.path.dirname(__file__))))
- """
-
- config_py = """#!/usr/bin/env python
- # -*- coding: UTF-8 -*-
-
- import optparse
- import os
- import %s as lib
-
- release_unittest_version = 'xxx'
- lib_path = os.path.realpath(lib.__path__[0])
- additional_loggers_to_catch = []
-
- if __name__ == "__main__":
- parser = optparse.OptionParser("usage: %%prog [options] folder_for_document")
- parser.add_option("-p", "--path", dest="libpath", action="store_true", default=False, help="prints the library path")
- (options, args) = parser.parse_args()
-
- if options.libpath:
- print(lib_path)
- """ % name
-
- test_init_py = """#!/usr/bin/env python
- # -*- coding: UTF-8 -*-
-
- import %s
-
- from report import TCEL_FULL
- from report import TCEL_SHORT
- from report import TCEL_SINGLE
- from report import TCEL_SMOKE
-
- #from tests import test_
-
- execution_level = 'full'
-
- def testrun(tcl):
- #
- # caching.property_cache_json
- #
- tcl.testCase('description', TCEL_FULL, test_.func, *args, **kwargs)
- """ % name
-
- main_makefile = """MODULE_NAME := $(shell basename `pwd`)
-
- view_unittest:
- xdg-open pylibs/$(MODULE_NAME)/_testresults_/unittest.pdf
-
- view_requirements:
- xdg-open pylibs/$(MODULE_NAME)/_requirements_/specification.pdf
-
- view_docs:
- xdg-open pylibs/$(MODULE_NAME)/_docs_/index.html
-
- clean:
- make -kC docs clean; make -kC requirements cleanall; make -kC unittest clean
- """
-
- docs_makefile = """# Minimal makefile for Sphinx documentation
- #
-
- # You can set these variables from the command line.
- SPHINXOPTS =
- SPHINXBUILD = sphinx-build
- SPHINXPRJ = state_machine
- SOURCEDIR = .
- BUILDDIR = _build
-
- # Put it first so that "make" without argument is like "make help".
- help:
- @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
- .PHONY: help Makefile
-
- # Catch-all target: route all unknown targets to Sphinx using the new
- # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
- %: $(SPHINXPRJ)
- @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
- $(SPHINXPRJ): Makefile
- make -C $@/_examples_ all
-
- release: html
- rm -rf $(SPHINXPRJ)/_docs_
- mv $(BUILDDIR)/html $(SPHINXPRJ)/_docs_
-
- view_html: html
- xdg-open $(BUILDDIR)/html/index.html
- """
-
- with open('.gitignore', 'w') as fh:
- fh.write(gitignore)
- with open('Makefile', 'w') as fh:
- fh.write(main_makefile)
- os.mkdir('docs')
- with open('docs/Makefile', 'w') as fh:
- fh.write(docs_makefile)
- os.symlink('../pylibs/%s' % name, 'docs/%s' % name)
- os.mkdir('pylibs')
- os.mkdir('requirements')
- os.symlink('../pylibs/reqif/scripts/Makefile', 'requirements/Makefile')
- os.symlink('../pylibs/reqif', 'requirements/reqif')
- os.mkdir('unittest')
- os.symlink('../pylibs/unittest/scripts/Makefile', 'unittest/Makefile')
- os.mkdir('unittest/input_data')
- os.mkdir('unittest/output_data')
- os.mkdir('unittest/src')
- with open('unittest/src/config.py', 'w') as fh:
- fh.write(config_py)
- with open('unittest/src/unittest.py', 'w') as fh:
- fh.write(unittest_py)
- for lib_name in [name, 'report', 'unittest', 'fstools', 'reqif']:
- os.symlink('../../pylibs/%s' % lib_name, 'unittest/src/%s' % lib_name)
- os.mkdir('unittest/src/tests')
- with open('unittest/src/tests/__init__.py', 'w') as fh:
- fh.write(test_init_py)
|