Skip to main content

TDEI-mobility-canonical-validator

gtfs-canonical-validator Unit Tests Coverage

This package is used to validate the canonical data. This library is used to validate all the GTFS datasets that are compatible with Mobility Data

The library pushes the dataset zip file to Mobility Data and fetches the report.

The reference for GTFS is available here

System requirements

Software Version
Python 3.10.x

What this package does?

This package is used to validate the canonical data.

Starting a new project with template

  • Add gtfs-canonical-validator package as dependency in your requirements.txt
  • or pip install gtfs-canonical-validator
  • Start using the packages in your code.

Initialize and Configuration

from gtfs_canonical_validator import CanonicalValidator

canonical_validator = CanonicalValidator(zip_file=<CANONICAL_ZIP_FILE_PATH>)
report = canonical_validator.validate()
print(report)

Testing

The project is configured with python to figure out the coverage of the unit tests. All the tests are in tests folder.

  • To execute the tests, please follow the commands:

    pip install -r requirements.txt

    python -m unittest discover -v tests/unit_tests

  • To execute the code coverage, please follow the commands:

    python -m coverage run --source=src/gtfs_canonical_validator -m unittest discover -s tests/unit_tests

    python -m unittest test_sample.MyTestCase.test_function - To run a single test case

    coverage html // Can be run after 1st command

    coverage report // Can be run after 1st command

  • After the commands are run, you can check the coverage report in htmlcov/index.html. Open the file in any browser, and it shows complete coverage details

  • The terminal will show the output of coverage like this

>  python -m unittest discover -v tests/unit_tests
test_validate_failed_upload (test_canonical_validator.TestCanonicalValidator) ... ok
test_validate_successful_upload (test_canonical_validator.TestCanonicalValidator) ... ok
test_validate_successful_upload (test_canonical_validator.TestCanonicalValidatorSuccessWithDatasets) ... ok
test_get_result_url (test_constants.TestConstants) ... ok
test_get_info_failure (test_mobility_data.TestMobilityData) ... ok
test_get_info_success (test_mobility_data.TestMobilityData) ... ok
test_get_mobility_data_failure (test_mobility_data.TestMobilityData) ... ok
test_get_mobility_data_success (test_mobility_data.TestMobilityData) ... ok
test_upload_failure (test_mobility_data.TestMobilityData) ... ok
test_upload_success (test_mobility_data.TestMobilityData) ... ok

----------------------------------------------------------------------
Ran 10 tests in 69.643s

OK

Coverage Report

>  coverage report
Name                                                Stmts   Miss  Cover
-----------------------------------------------------------------------
src/example.py                                          5      5     0%
src/gtfs_canonical_validator/__init__.py           20      0   100%
src/gtfs_canonical_validator/constants.py           5      0   100%
src/gtfs_canonical_validator/gtfs_validator.py      44      0   100%
src/gtfs_canonical_validator/version.py             1      0   100%
-----------------------------------------------------------------------
TOTAL                                                  75      5    93%

Running validation on Local files

  • Use the code in example.py to replace the dataset sources and run the code to get the validation report.
  • An example report can be found at example-report.json
  • The report explanation can be found here

Deployment:

Deploy to TestPy

  • On every push to dev branch, a workflow is triggered which publishes the updated version to TestPy

Deploy to PyPI

  • This happens whenever a tag/release is created with *.*.* notation (eg. 0.0.8)
  • To change the version, change the version at version.py
  • To release a new version:
    • Go to Github link of this repository
    • Under releases, click on Draft a new release
    • Under choose a new tag, add a new tag v*.*.* , Generate Release notes
    • Choose main branch for release
    • Publish the release.
  • This release triggers a workflow to generate the new version of the Package.
  • The new package will be available at https://pypi.org/project/gtfs-canonical-validator/

Metadata

Release files for gtfs-canonical-validator 0.0.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for gtfs-canonical-validator 0.0.9
File Interpreter ABI Platform
gtfs_canonical_validator-0.0.9-py3-none-any.whl Python 3 none any Details

Release files / gtfs_canonical_validator-0.0.9-py3-none-any.whl

Download URL gtfs_canonical_validator-0.0.9-py3-none-any.whl
Size 6.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b3a7c4ebff91efafbdb2cc37a022037606100befffa6989491e39771b50ce865
BLAKE2b-256 checksum
How to use checksums
936912f759a3c4877ffd9ea0b7677192a04336ebb0e56efee518b72761f7f757
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release history Release notifications | RSS feed

This release

0.0.9 This release

1 release file

0.0.8

1 release file

0.0.7

1 release file

0.0.6

1 release file

0.0.5

1 release file

0.0.4

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page