Skip to main content

No project description provided

Project description

pytest oarepo

Pytest fixtures and other test code for OARepo.

The module is divided into different parts for basic repositories, repositories with requests and repositories with communities.

How to use:

For fixtures, add to your conftest.py following

pytest_plugins = [
    "pytest_oarepo.requests.fixtures",
    "pytest_oarepo.records",
    "pytest_oarepo.fixtures",
    "pytest_oarepo.users",
]

Other code can be imported like everything else

The basic package contains:

  • fixtures
    • host - where the tests are running
    • link2testclient - helper function to convert links into format used by pytest test client
    • default_record_json - basic data for record creation without workflow
    • default_record_with_workflow_json - the same but with explicitly added default workflow
    • prepare_record_data - Function for merging input definitions into data passed to record service.
    • vocab_cf - initiates OARepo defined custom fields, expected to be used as autouse where needed
    • logged_client - wrapper ensuring the correct user sends an api requests
  • functions
    • link2testclient - transforms resource link to form used by pytest test clients
    • is_valid_subdict - Checks whether dictionary is valid subdictionary and returns where they differ if not.
  • records
    • draft_factory - Creates instance of a draft, additionally allows specifying custom workflow, additional draft data, expand and other keywords arguments for the record service. Example of use with custom workflow:
    draft1 = draft_factory(user1.identity, custom_workflow="with_approve")
    
    • record_factory - the same for published records
    • record_with_files_factory - the same for published records with attached file
  • users
    • a bunch of user fixtures

The requests module contains

  • fixtures
    • requests_service - Underlying requests service
    • requests_events_service - Underlying service for creating request events
    • oarepo_requests_service - OARepo requests service
    • role - Returns a group object that can be used as receiver of a request for example.
    • role_ui_serialization - Returns an expected ui serialization of the group object
    • events_resource_data - Default data for creating a request event.
    • request_type_additional_data - Function giving additional data if specific request type needs them
    • create_request - Base fixture for creating a request.
    • create_request_on_draft - Fixture for creating a request on a draft.
        resp_request_create = create_request_on_draft(
          creator.identity, draft1_id, "publish_draft"
      )
    
    • create_request_on_record - Fixture for creating a request on a published record.
    • submit_request_on_draft - Fixture for creating and submitting request on a draft in one call.
    • submit_request_on_record - Fixture for creating and submitting request on a published record in one call.
    • submit_request - creates and submits specific request on a specific record
  • classes
    • TestEventType - Custom generic EventType usable in tests.
    • UserGenerator - Permission generator primarily used to define specific user as recipient of a request.
  • functions
    • get_request_type - Function returning dict representing serialized request type from serialized request types on record.
    • get_request_create_link - The same but returns create link.

The communities module contains

  • fixtures
    • community_inclusion_service - service for direct inclusion and exclusion of records from communities
    • community_records_service - service for communities related record creations and searches
    • minimal_community - Default data used for creating a new community.
    • init_communities_cf - init oarepo specific custom fields including the ones relevant for communities, expected to be used with autouse
    • community - Basic community.
    • community_owner - User fixture used as owner of the community fixture.
    • community_get_or_create - Function returning existing community or creating new one if one with the same slug doesn't exist.
  • functions
    • invite - Adds user into a community in a specified role.
    • remove_member_from_community - Removes a user from a community.
    • set_community_workflow - Set default workflow of a community.
  • records
    • draft_with_community_factory - Creates instance of a draft in specified community.
    • published_record_with_community_factory - Creates instance of a published record in specified community.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytest_oarepo-1.0.6.tar.gz (11.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pytest_oarepo-1.0.6-py3-none-any.whl (14.1 kB view details)

Uploaded Python 3

File details

Details for the file pytest_oarepo-1.0.6.tar.gz.

File metadata

  • Download URL: pytest_oarepo-1.0.6.tar.gz
  • Upload date:
  • Size: 11.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pytest_oarepo-1.0.6.tar.gz
Algorithm Hash digest
SHA256 3f525b222e9098d7ecbf440cb0186948c51f9ddeda771fe39e623f9f6e8485a7
MD5 ca666ff899277f36c912db3409a87153
BLAKE2b-256 0dc1e8490257f457f408421ac1d4aec06fc0e465630de858826f5633a4abaac9

See more details on using hashes here.

File details

Details for the file pytest_oarepo-1.0.6-py3-none-any.whl.

File metadata

  • Download URL: pytest_oarepo-1.0.6-py3-none-any.whl
  • Upload date:
  • Size: 14.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pytest_oarepo-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 1feff3c179da463b51353fefca464e04d3e53ede8592e1a243e1f2ae62da8829
MD5 108c7ab14514c013a8c2f834f0b79991
BLAKE2b-256 13dfa7996f0e533d80efc24712fe705434be2107c375c9ebd66a6392611cb1a5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page