"""Tests for ProjectPostRequest.""" from project_manager.constant import header_const from project_manager.entity.project_post_request import ProjectPostRequest post_params = { 'project_code': 'a project code', 'project_name': 'project name', 'artist_id': 123, 'subaccount_id': 567, 'grass_account_id': 890, 'correlation_id': 'abc123', 'description': 'a description', } def test_project_post_request_with_orchard_admin(): """Test ProjectPost as an orchard admin.""" vendor_id = 999 post_request = ProjectPostRequest( project_code=post_params['project_code'], project_name=post_params['project_name'], artist_id=post_params['artist_id'], subaccount_id=post_params['subaccount_id'], grass_account_type=None, grass_account_id=None, correlation_id=post_params['correlation_id'], description=post_params['description'], vendor_id=vendor_id, ) assert post_request.subaccount_id == post_params['subaccount_id'] assert post_request.vendor_id == vendor_id def test_project_post_request_as_vendor(): """Test ProjectPost as a vendor.""" grass_account_type = header_const.GRASS_ACCOUNT_TYPE_VENDOR post_request = ProjectPostRequest( project_code=post_params['project_code'], project_name=post_params['project_name'], artist_id=post_params['artist_id'], subaccount_id=post_params['subaccount_id'], grass_account_type=grass_account_type, grass_account_id=post_params['grass_account_id'], correlation_id=post_params['correlation_id'], description=post_params['description'], ) assert post_request.subaccount_id == post_params['subaccount_id'] assert post_request.vendor_id == post_params['grass_account_id'] def test_project_post_request_as_vendor_no_subaccount(): """Test ProjectPost as a vendor with no subaccount.""" grass_account_type = header_const.GRASS_ACCOUNT_TYPE_VENDOR post_request = ProjectPostRequest( project_code=post_params['project_code'], project_name=post_params['project_name'], artist_id=post_params['artist_id'], subaccount_id=None, grass_account_type=grass_account_type, grass_account_id=post_params['grass_account_id'], correlation_id=post_params['correlation_id'], description=post_params['description'], ) assert post_request.subaccount_id == ProjectPostRequest.SUBACCOUNT_ID_NULL assert post_request.vendor_id == post_params['grass_account_id'] def test_project_post_request_as_subaccount(): """Test ProjectPost as a subaccount.""" grass_account_type = header_const.GRASS_ACCOUNT_TYPE_SUBACCOUNT post_request = ProjectPostRequest( project_code=post_params['project_code'], project_name=post_params['project_name'], artist_id=post_params['artist_id'], subaccount_id=None, grass_account_type=grass_account_type, grass_account_id=post_params['grass_account_id'], correlation_id=post_params['correlation_id'], description=post_params['description'], ) assert post_request.subaccount_id == post_params['grass_account_id'] assert post_request.vendor_id is None def test_project_post_request_with_user(): """Test ProjectPost with user data.""" vendor_id = 999 user = 'alw:123' post_request = ProjectPostRequest( project_code=post_params['project_code'], project_name=post_params['project_name'], artist_id=post_params['artist_id'], subaccount_id=post_params['subaccount_id'], grass_account_type=None, grass_account_id=None, correlation_id=post_params['correlation_id'], description=post_params['description'], vendor_id=vendor_id, user=user ) assert post_request.user == user