Refactor python tests
- or -
Post a project like this£20/hr(approx. $25/hr)
- Posted:
- Proposals: 4
- Remote
- #664289
- Expired
Description
Experience Level: Intermediate
Estimated project duration: 1 day or less
Small trial python job potentially leading to more work. Updated Tuesday 20th following feedback.
## Brief background:
I generated some Python tests, now they need refactoring; I'm not a pythonista so the 3 simple unit test python files are hacked together from an example in a way that works. I would like to have these refactored so that instead of 3 unit test python files I would have 1 single unit test python file.
## Situation:
These tests are testing a plugin for a framework called 'Cloudify' (https://www.getcloudify.com); Cloudify uses a file called a 'blueprint' to execute certain actions.
The structure of each unit test file is:
- setup method (references the test-specific 'blueprint file')
- test_[method-under-test name] (this mocks the specific plugin action it's testing and executes the 'blueprint', asserting the result)
There are (now) 3 methods available within the plugin: 1. deploy_vm, 2. install_adds & 3. install_mssql
Each of these files has it's own unit test file, however is actually testing one single method within the plugin.
So unit test also has a separate file which is related to the particular method; i.e. deploy_vm has deploy_vm.yml
Essentially each test does this:
1. Initialise Cloudify with the appropriate blueprint config file
2. Mock out the particular method-under-test
3. Order Cloudify to execute the blueprint
4. Compare result of Cloudify execution against expected results
A sample of _one_ of these test cases has been attached to this job. Each of the other test cases is nearly identical in form _apart from_ the assertions that each test case makes (but I don't expect these need changing).
## Problem
3 separate test files for 3 actions which have very few sub-cases seems like too much; I feel that this could be refactored into a single test file. It could be exceedingly simple or, possibly, Cloudify causes some problems. I currently have no clue. That's where you come in!
## Required solution
The requirement here is that an elegant solution be found in refactoring the tests together. The minimum requirement is that the 3 unit test cases become 1 single test case.
## Frameworks / technologies in use:
- Python
- unittest
- mock
- tox
- Cloudify (no prior knowledge required ... I hope and tox will ensure the dependencies are present)
At present the frameworks are not negotiate-able (but might be in the future assuming this job goes well).
## Brief background:
I generated some Python tests, now they need refactoring; I'm not a pythonista so the 3 simple unit test python files are hacked together from an example in a way that works. I would like to have these refactored so that instead of 3 unit test python files I would have 1 single unit test python file.
## Situation:
These tests are testing a plugin for a framework called 'Cloudify' (https://www.getcloudify.com); Cloudify uses a file called a 'blueprint' to execute certain actions.
The structure of each unit test file is:
- setup method (references the test-specific 'blueprint file')
- test_[method-under-test name] (this mocks the specific plugin action it's testing and executes the 'blueprint', asserting the result)
There are (now) 3 methods available within the plugin: 1. deploy_vm, 2. install_adds & 3. install_mssql
Each of these files has it's own unit test file, however is actually testing one single method within the plugin.
So unit test also has a separate file which is related to the particular method; i.e. deploy_vm has deploy_vm.yml
Essentially each test does this:
1. Initialise Cloudify with the appropriate blueprint config file
2. Mock out the particular method-under-test
3. Order Cloudify to execute the blueprint
4. Compare result of Cloudify execution against expected results
A sample of _one_ of these test cases has been attached to this job. Each of the other test cases is nearly identical in form _apart from_ the assertions that each test case makes (but I don't expect these need changing).
## Problem
3 separate test files for 3 actions which have very few sub-cases seems like too much; I feel that this could be refactored into a single test file. It could be exceedingly simple or, possibly, Cloudify causes some problems. I currently have no clue. That's where you come in!
## Required solution
The requirement here is that an elegant solution be found in refactoring the tests together. The minimum requirement is that the 3 unit test cases become 1 single test case.
## Frameworks / technologies in use:
- Python
- unittest
- mock
- tox
- Cloudify (no prior knowledge required ... I hope and tox will ensure the dependencies are present)
At present the frameworks are not negotiate-able (but might be in the future assuming this job goes well).
Oliver T.
0% (0)Projects Completed
-
Freelancers worked with
-
Projects awarded
0%
Last project
25 Apr 2024
United Kingdom
New Proposal
Login to your account and send a proposal now to get this project.
Log inClarification Board Ask a Question
-
There are no clarification messages.
We collect cookies to enable the proper functioning and security of our website, and to enhance your experience. By clicking on 'Accept All Cookies', you consent to the use of these cookies. You can change your 'Cookies Settings' at any time. For more information, please read ourCookie Policy
Cookie Settings
Accept All Cookies