Prepping Code Tests for a Revamp
This week began with me looking at the work I had done with the mentors' tests last week. After reviewing what I had written, I was able to determine that, in addition to the "ConstructCrawler" code crawler that currently exists, creating six additional types of crawlers will cover 90% of the tests that the mentors wrote. I also pulled out four potential API functions, based on common procedures that appeared in multiple places.
After figuring this out, my next step was to begin abstracting out the parts of the code test system that are locked into the ConstructCrawler structure. This lead to the creation of two class types, CodeTestDescriptor classes and CodeTestCrawlers. The Descriptors encapsulate the information needed to specialize the Jython test code for the crawler type, and instantiates a CodeTestCrawler object, which is where the actual crawler is contained.
After a little bit of tinkering, I got the abstraction working with a ConstructCrawler hardcoded in as the only option, since there's no way to choose a different crawler in the GUI yet. My plan moving forward is obviously to modify the GUI to allow the crawler type to be chosen, and then to actually write the other crawlers!