The Tree class is completely agnostic of any notion of a dependency
tree. So it's filter and reverse methods purely work on the given
datastructure which is a map. So the combination of '--reverse' and
'--packages' options require the reverse method to be called before
filter. If done the other way, when reverse is called, it will have
only partial tree resulting in incorrect behaviour in the context of
this script.
Added documentation on the tree class and it's methods accordingly.
The earlier approach for integration tests was unreliable as it used
pickled objects from virtualenvs, which didn't work with all the pip
internal code and would often require tests to be fixed.
In this new approach, a combination of bash and python scripts drive
the tests. Test virtualenvs are setup on demand with support for
varying python and pip versions. As a result, the test
environment (python 3.6) can be completely different from the test
environment ie. the env in which pipdeptree is tested.
TODO: Get the new approach working with travis and remove old
integration tests.