7 Commits

Author SHA1 Message Date
Ian H Pittwood
dae192efc6 Upgrade yapf to 0.28
Upgrades yapf to newest version, 0.28.0, and runs the formatter to
update all existing code.

Adds entry to .gitignore to ignore pyenv installations.

Change-Id: I11512a8a522cc530165461cc8f52f7ff010dd092
2019-08-14 19:15:04 +00:00
Ian H Pittwood
4e2de1dae1 Adds tests for the plugin base
This change adds tests for the abstract plugin base for any non-abstract
methods.

Change-Id: I6be3af09cec97bf925b274622d64f3019eb389e1
2019-07-22 14:09:30 -05:00
Ian H Pittwood
b7c2bc7ccd Add tests for parsing engine
Increases test coverage of the Spyglass parser engine from 0% to 82%,
bringing overall test coverage to 86.4%. This change moves minimum
coverage to 84%.

Change-Id: I2de496b8d7f4c4252be22c713605fae6fd565b66
2019-07-18 14:27:45 +00:00
Ian H. Pittwood
43b6d78d00 Combines all exceptions into a single file
Spyglass has three different files that define exceptions. This change
merges all of those definitions into a single file for simplicity.
Before this change can be merged, spyglass-plugin-xls needs to move the
exceptions needed for its functions.

Related Change: https://review.opendev.org/#/c/667243/

Depends-On: I81c5ca2d9083aece3641bc8b5405dfd44baec810
Change-Id: Ibf34771653247850903e529beb17dbd60ba35fbf
2019-07-09 12:29:01 -05:00
Ian H. Pittwood
efe24d8a5f Use data objects for document generation
This is a follow-up change to [0] which further implements data objects
to be used in the generation of documents in Jinja2. The following
additions and changes are made:

- Adds helper functions to data objects to filter hosts and networks for
ease of use in Jinja2 templates
- Adds SiteDocumentData factory function to convert intermediary yaml
dictionaries into a SiteDocumentData object with all associated objects
- Updates Jinja2 templates to use data objects
- Cleans up overly complex looping in Jinja2
- Adds tests for new code in models.py

[0] https://review.opendev.org/#/c/662092/

Change-Id: I66ebfeaf5d6ca76b6dee5a2285a74bad8b06b720
2019-06-26 12:03:40 -05:00
Ian H. Pittwood
4747222641 Implements data object models
This change implements data object models from [0] in data extraction
and parsing. The change results in minor modifications to the outputted
intermediary, which can be seen between these two example intermeidary
files [1].

This fully implements the data objects from models.py in data extraction
and parsing. A follow-up change will implement use of the data objects
in Jinja2. Temporarily, all objects will be converted to dictionaries
for generating documents from templates.

[0] https://review.opendev.org/#/c/658917/
[1] https://www.diffchecker.com/NnjjJrb2

Change-Id: Ifd867787aab541be5dabecf9f6026faa2ec7049e
2019-06-21 15:00:46 -05:00
Ian H. Pittwood
313058b8fb Adds tests for Spyglass data objects
Adds unit tests for all data objects created in [0]. The changes in [0]
were merged in short succession with [1], causing the test coverage gate
to fail with all the newly introduced lines of code. This change adds
tests for all of the newly added code and increases test coverage
requirement to 60% (currently at 65.93%).

[0] https://review.opendev.org/#/c/658917/
[1] https://review.opendev.org/#/c/663729/

Change-Id: I96931e3e415af80ca5ab9202c2bda0344a9901f0
2019-06-18 15:15:28 -05:00