Separate unit and integration tests
#### Readings
- [Structuring thousands of automated tests](https://medium.com/trustyou-engineering/structuring-thousands-of-automated-tests-82503e701e54)
---
As a Silkaj developer and packager, I would like to have the tests separated by their kinds. The tests should use as less possible network access to speed-up the tests with mock usage.
- Unit tests
- Integration tests
- end-to-end tests
---
### Mock as much as possible
Following tests requires network access:
- test_end_to_end
- blockchain/test_verify
- [x] money/test_tx_file
- wot/test_membership
Mock them if possible to be able to move them to the `unit` directory.
Do not bother if the tests are to difficult to mock, since they will get deleted in next milestone.
---
### Potential splits
- `patched/`
- `unit/`
- `integration/`
- `fully patched/`
- `partially_patched/`: Requires network access
- `end_to_end`?
---
- Split tests between those which requires network_access and those who don’t?
- Split tests between unit, integration and end-to-end once? How?
- `unit`, `integration` `end_to_end` directories ?
- `{blockchain,money,wot}/test_{unit,integration,end_to_end}_$cmd_name`?
### Gitlab CI jobs
- Run unit tests on all supported Python versions
- Run integration/end-to-end tests on latest Python version
issue