def test_build_workflow():
    # Given
    workflow_collection = WorkflowCollection(project_id=uuid.uuid4(),
                                             session=None)
    design_workspace_data = {
        'id': str(uuid.uuid4()),
        'display_name': 'Test Workflow',
        'status': 'READY',
        'config': {
            'design_space_id': str(uuid.uuid4()),
            'processor_id': str(uuid.uuid4()),
            'predictor_id': str(uuid.uuid4()),
        },
        'module_type': 'DESIGN_WORKFLOW',
        'schema_id': '8af8b007-3e81-4185-82b2-6f62f4a2e6f1',
        'create_time': datetime(2020, 1, 1, 1, 1, 1, 1).isoformat("T"),
        'created_by': str(uuid.uuid4())
    }

    # When
    workflow = workflow_collection.build(design_workspace_data)

    # Then
    assert workflow.project_id == workflow_collection.project_id
    assert workflow.session is None
def test_build_performance_workflow(basic_performance_workflow_data):
    # Given
    workflow_collection = WorkflowCollection(project_id=uuid.uuid4(),
                                             session=None)

    # When
    workflow = workflow_collection.build(basic_performance_workflow_data)

    # Then
    assert workflow.project_id == workflow_collection.project_id
    assert workflow.session is None
    assert workflow.succeeded(
    ) and not workflow.in_progress() and not workflow.failed()
def test_list_workflows(basic_design_workflow_data,
                        basic_performance_workflow_data):
    #Given
    session = FakeSession()
    workflow_collection = WorkflowCollection(project_id=uuid.uuid4(),
                                             session=session)
    session.set_responses(
        {
            'entries': [basic_design_workflow_data],
            'next': ''
        },
        {
            'entries': [basic_performance_workflow_data],
            'next': ''
        },
    )

    # When
    workflows = list(workflow_collection.list(per_page=20))

    # Then
    expected_design_call = FakeCall(method='GET',
                                    path='/projects/{}/modules'.format(
                                        workflow_collection.project_id),
                                    params={
                                        'per_page': 20,
                                        'module_type': 'DESIGN_WORKFLOW'
                                    })
    expected_performance_call = FakeCall(
        method='GET',
        path='/projects/{}/modules'.format(workflow_collection.project_id),
        params={
            'per_page': 20,
            'module_type': 'PERFORMANCE_WORKFLOW'
        })
    assert 2 == session.num_calls
    assert expected_design_call == session.calls[0]
    assert expected_performance_call == session.calls[1]
    assert len(workflows) == 2
    assert isinstance(workflows[0], DesignWorkflow)
    assert isinstance(workflows[1], PerformanceWorkflow)
def test_build_workflow():
    # Given
    workflow_collection = WorkflowCollection(project_id=uuid.uuid4(),
                                             session=None)
    design_workspace_data = {
        'id': str(uuid.uuid4()),
        'display_name': 'Test Workflow',
        'status': 'READY',
        'modules': {
            'design_space_id': str(uuid.uuid4()),
            'processor_id': str(uuid.uuid4()),
            'predictor_id': str(uuid.uuid4()),
        }
    }

    # When
    workflow = workflow_collection.build(design_workspace_data)

    # Then
    assert workflow.project_id == workflow_collection.project_id
    assert workflow.session is None
Example #5
0
 def workflows(self) -> WorkflowCollection:
     """Return a resource representing all visible workflows."""
     return WorkflowCollection(self.uid, self.session)