Pythoscope static-analysis

Explore the test generation idea, ignoring the problem of side effects for now, using static analysis only.

In this milestone we'll put life into the project. We'll focus on implementing foundations of the architecture. Analyzer will only look at the code statically, with just enough code to support test stubs generation. Generator will generate test stubs to the designated output directory for the specified modules, classes, methods and stand-alone functions. The main way to interact with the scripts will be to pass arguments to them, although we should keep the door open for later addition of configuration files. I feel those aren't necessary at such an early stage. Once we get a better idea of what should be configurable and to what extend, we'll think about configuration files.

There are quite a few tools that explored Python source code analysis. Those include:
 - source code style checkers, like pylint, PyChecker, and PyFlakes
 - CodeInvestigator debugger
 - Python4Ply, lexer and parser for Python
 - cyclomatic complexity analyzer
 - type annotators, like PyPy type annotator and annotate script
 - Cheesecake

So we have a plenty of examples of using the stdlib's (now deprecated) compiler module. Any thoughts whether we should use the new _ast module appreciated. My guess is that we shouldn't, because we don't want to force people into using the latest stable version of Python. They may not have a choice while working on their legacy applications.

Milestone information

No. Drivers cannot target bugs and blueprints to this milestone.  


Assigned to you:
No blueprints or bugs assigned to you.
2 Michal Kwiatkowski
No blueprints are targeted to this milestone.
2 Fix Released

0 blueprints and 2 bugs targeted

Bug report Importance Assignee Status
260924 #260924 doesn't handle nested classes 4 Medium Michal Kwiatkowski  10 Fix Released
264449 #264449 pythoscope generate crashes with AttributeError: 'TestModule' object has no attribute 'testable_objects' 4 Medium Michal Kwiatkowski  10 Fix Released
This milestone contains Public information
Everyone can see this information.