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-3.1.0.tar.gz (18.4 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-3.1.0-py3-none-any.whl (29.8 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for pytest_oarepo-3.1.0.tar.gz
Algorithm Hash digest
SHA256 1c2f3a80d42ba2b82a0afffb505805f315aaf52dd192d608ddf1bb645989c142
MD5 504da1b83b58fab055bfb186e1e97347
BLAKE2b-256 46e423d7700c94f48233fd030e46163a2438cd57fbfed02552cf26787dce0cb6

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pytest_oarepo-3.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 64b43c52c6cbbeca5f987ef2bf4f2eac249547a87b459c1688a77dd16a6539f2
MD5 4be28b9417c4a583531eacfe4d453f4c
BLAKE2b-256 6a3dfd5d804ed635bfa37e2e2cb9dc97357854630e17e23829a1bf583204c669

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