Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RFC8 - Move to pytest testing tool #495

Merged
merged 1 commit into from
Jan 30, 2017

Conversation

ricardogsilva
Copy link
Member

This commit is the result of cleaning up the git commit history in the previous pull request. This PR supersedes the previous one, which has been closed.

Overview

This pull request implements the changes proposed in RFC8 - Move to pytest testing tool

The work is not finished yet. I am submitting the PR already in order to have a more public place for early review for the RFC and also to allow testing the incoming changes to travis.

A rough draft of the completed/todo list and current status:

  • Allow running all tests with an sqlite database
  • Allow running all tests with a postgresql database
  • Consolidate documentation on how to run tests
  • Consolidate development requirements
  • Add license and copyright headers to new files
  • Remove older testing tasks from paverment.py
  • Remove the older runtests test runner
  • Move test cases and expected results into suite based dirs
  • Enable measuring code coverage with the pytest-cov plugin
  • A timeout threshold for tests with pytest-timeout plugin
  • Integrate with tox in order to facilitate testing with multiple python versions and database backends
  • Add meaningful docstrings to all new functions
  • Refactor the Travis configuration to reflect the new test runner
  • All tests pass with sqlite as backend and python2.6
  • All tests pass with sqlite as backend and python2.7
  • All tests pass with sqlite as backend and python3.4
  • All tests pass with sqlite as backend and python3.5
  • Clean up the git commit history
  • Alter the RFC description page in order to provide a detailed explanation on the changes introduced by this PR

I plan to complete the missing items on the list shortly and then call for a vote on the RFC. Currently I'm facing some troubles with the harvesting suite as I'm getting some errors that seem to be external to pycsw. The other suites are all passing.

Related Issue / Discussion

RFC8 - Move to pytest testing tool
Issue #428

Additional Information

I'm contemplating other tasks that could be done and that are somehow related to this PR. I've decided to keep them out of scope for this:

  • Running tests in parallel with the pytest-xdist plugin - May require further changes and I did not feel like delaying this PR even more;
  • All tests pass with postgresql as backend - There are some tests that are currently not working with postgresql. This has nothing to do with this PR, the tests are broken in the current master as well. We can tackle this more effectively once we get an automated way to run postgresql tests;
  • Allow running tests with a mysql database - Requires further development. Since this feature is not present in the current master I guess it is not a priority;
  • Subscribing to a code coverage service like codecov - This would give some visibility to our code coverage and help improving it. This particular service is free for open source projects. This seems like something to discuss with other devs (or maybe the PSC?) after merging this PR.

Contributions and Licensing

(as per https://github.com/geopython/pycsw/blob/master/CONTRIBUTING.rst#contributions-and-licensing)

  • I'd like to contribute [feature X|bugfix Y|docs|something else] to pycsw. I confirm that my contributions to pycsw will be compatible with the pycsw license guidelines at the time of contribution.
  • I have already previously agreed to the pycsw Contributions and Licensing Guidelines

This commit is the result of cleaning git for RFC8.
@tomkralidis tomkralidis merged commit e952e06 into geopython:master Jan 30, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants