This week saw the merging of two PR's, one was the archiver test file which I parameterized and removed the unittest elements. The other was the repository test file which I converted from unittest to pytest and created fixtures to replace the setup and teardown methods. These are two files that I had finished a while ago but took some time to get them to a place where they were ready to be merged, and I am very happy to see them finally complete! I spent most of the week thereafter going through the archiver commands folder of tests that I had completed the previous week. My goal was to do a bit a of a quality check and ensure that I did not break any functionality of the tests in the process of converting them away from unittest to pytest. Additionally, I gathered feedback my from mentor Thomas and implemented several fixes based on his review. The archiver commands folder is now in a really good place, and I will continue to follow feedback from Thomas until that PR is able to be merged.
I definitely found myself hitting a couple roadblocks this week when trying to address feedback from Thomas. The first was building a binary for my tests to run on locally. I followed the instructions from the Borg documentation and took at look at the Vagrantfile, and was able to get the `Borg.exe` file created, however whenever I tried to run the tests with the binary I would get an error that the file was not found. I put a pause on this for now, but will do more research to overcome this issue and finally be able to run the tests on a binary.
My second roadblock came when I tried to pass `pytest_generate_tests`a list of `kinds` of tests that needed to be generated. Some test files only need local archivers, however some run each test on a combination of local archiver, remote archiver, and binary archiver, and the idea was to pass a list of `kinds` needed to `pytest_generate_tests` after it was imported to each test file. Ultimately, however, I ran into issues because it does not appear that this is a function that be called and passed a list the way other functions can be. My mentor recommended using a lambda function Orr `partial` to make it happen, but I was unsuccessful and will continue to work on this.
The week ahead:
As things get buttoned up with the Borg test suite, I am ready to move on to my next project: Improving Vorta's Test Coverage. This week I will create a coverage report and submit my findings and outline a proposed solution in a GitHub FR. I will then receive feedback and begin working on adding unit tests and parameterization where needed with the goal of improving Vorta's test coverage from its current standing of 72% to a goal of ~80%.