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-6.0.1.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-6.0.1-py3-none-any.whl (29.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pytest_oarepo-6.0.1.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-6.0.1.tar.gz
Algorithm Hash digest
SHA256 8eb8db74aa6afd8f876c3fa4e58c0719f910053451fac7f935c4a9340c80cea4
MD5 dcdd1cf602a6487e61173767c95f4b23
BLAKE2b-256 d7f9e7bc585eb0e97b56542f263b2957f5a056ad600870f69d95bfd3d8f3cda6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pytest_oarepo-6.0.1-py3-none-any.whl
  • Upload date:
  • Size: 29.9 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-6.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fa4dd4aa3fa6a2137ffa3d887b68f75697c7c34d721840a41b11923a23518b8f
MD5 ac2ccb59d272c871d58cdef88dddc895
BLAKE2b-256 536356efe71a9d799399e00e971f1dbd9c47d1f41e6a14595d5713870a0205d9

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