def test__submitTestResults__should_submit_test_run(vrt, mock_request):
    testRunResult = TestRunResponse(
        url='url',
        status=TestRunStatus.UNRESOLVED,
        pixelMisMatchCount=12,
        diffPercent=0.12,
        diffTollerancePercent=0,
    )
    testRun = TestRun(name='name',
                      imageBase64='image',
                      os='os',
                      device='device',
                      viewport='viewport',
                      browser='browser',
                      ignoreAreas=[IgnoreArea(1, 2, 3, 4)])
    buildId = '1312'
    projectId = 'asd'
    vrt.buildId = buildId
    vrt.projectId = projectId

    mock_request.return_value = _to_dict(testRunResult)

    result = vrt._submitTestResult(testRun)

    assert result == testRunResult
    mock_request.assert_called_once_with(
        f'{CONFIG.apiUrl}/test-runs',
        'post',
        {
            'name': testRun.name,
            'imageBase64': testRun.imageBase64,
            'os': testRun.os,
            'browser': testRun.browser,
            'viewport': testRun.viewport,
            'device': testRun.device,
            'buildId': buildId,
            'projectId': projectId,
            'branchName': CONFIG.branchName,
            'ignoreAreas': [{
                'x': 1,
                'y': 2,
                'width': 3,
                'height': 4,
            }]
        },
        {'apiKey': CONFIG.apiKey},
    )
Ejemplo n.º 2
0
    def trackElementHandle(self,
                           elementHandle: sync_api.ElementHandle,
                           name: str,
                           options: ElementHandleTrackOptions = None):
        screenshotOptions = _to_dict(
            options.screenshotOptions) if options else {}
        screenshot = elementHandle.screenshot(**screenshotOptions)
        imageBase64 = base64.b64encode(screenshot).decode('ascii')

        self.track(
            TestRun(
                name,
                imageBase64,
                options.agent.os if options and options.agent else None,
                self.browser.name,
                options.agent.viewport if options and options.agent else None,
                options.agent.device if options and options.agent else None,
                options.diffTollerancePercent if options else None,
                options.ignoreAreas if options else None,
            ))
Ejemplo n.º 3
0
    def trackPage(self,
                  page: sync_api.Page,
                  name: str,
                  options: PageTrackOptions = None):
        viewportSize = page.viewport_size
        screenshotOptions = _to_dict(
            options.screenshotOptions) if options else {}
        screenshot = page.screenshot(**screenshotOptions)
        imageBase64 = base64.b64encode(screenshot).decode('ascii')

        self.track(
            TestRun(
                name,
                imageBase64,
                options.agent.os if options and options.agent else None,
                self.browser.name,
                f'{viewportSize["width"]}x{viewportSize["height"]}'
                if viewportSize else None,
                options.agent.device if options and options.agent else None,
                options.diffTollerancePercent if options else None,
                options.ignoreAreas if options else None,
            ))
Ejemplo n.º 4
0
def test__to_dict(obj, expected):
    actual = _to_dict(obj)
    assert actual == expected