Product
Introducing License Enforcement in Socket
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
Example BuildingSync files and tools for writing and validating BuildingSync use cases as schematron files.
A tool for writing and validating BuildingSync use cases as Schematron files. See the BuildingSync use-cases repository for current Schematron and example files for particular use cases.
pip install testsuite
Poetry is required to install testsuite.
# Copy repo
git clone https://github.com/BuildingSync/TestSuite.git
# install the package
cd TestSuite
poetry install
# Test that it works, you should see a message describing the usage
poetry run testsuite
from testsuite.validate_sch import validate_schematron
# run basic validation
# returns an array of testsuite.validate_sch.Failures
failures = validate_schematron('my_schematron.sch', 'my_xml.xml')
# save the svrl result file
failures = validate_schematron('my_schematron.sch', 'my_xml.xml', result_path='validation_result.svrl')
# run a specific phase in schematron
failures = validate_schematron('my_schematron.sch', 'my_xml.xml', phase='MyPhaseID')
# report unfired rules as errors
failures = validate_schematron('my_schematron.sch', 'my_xml.xml', strict_context=True)
# fetch a file from the use-cases repo and use it for validation
import urllib.request
schematron_url = 'https://raw.githubusercontent.com/BuildingSync/use-cases/main/SEED/schematron/SEED-1.0.0.sch'
schematron_filename = 'local_schematron.sch'
urllib.request.urlretrieve(schematron_url, filename=schematron_filename)
failures = validate_schematron(schematron_filename, 'my_xml.xml')
testsuite validate my_schematron.sch my_xml.xml
# see all options
testsuite validate --help
First create a CSV file that meets the required structure:
phase title,phase see,pattern title,pattern see,rule title,rule context,assert test,assert description,assert severity,notes
See the CSV files in this repo for examples.
Hierarchy is implied by the lack of text in a column. If no phase data is added to a row, it's considered to be the same phase as the row above. If no pattern data is present, it's assumed to be the same pattern as above. If no rule context is given, it's assumed to be the same as the one above.
The generator expects a "exemplary" xml file which should pass the validation. This is used to make sure all rules are applied (schematron will skip rules if the rule context doesn't match or if it only matches nodes that have already been matched within that pattern). If no exemplary file is provided no rule context checks will be made.
poetry run testsuite generate path_to_csv [path_to_exemplary_xml]
poetry run tox -e python
FAQs
Example BuildingSync files and tools for writing and validating BuildingSync use cases as schematron files.
We found that testsuite demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
Product
We're launching a new set of license analysis and compliance features for analyzing, managing, and complying with licenses across a range of supported languages and ecosystems.
Product
We're excited to introduce Socket Optimize, a powerful CLI command to secure open source dependencies with tested, optimized package overrides.