示例#1
0
def test_review_scenario(mock_request, addon_with_files, review_action,
                         addon_status, file_status, review_class, review_type,
                         final_addon_status, final_file_status):
    # Setup the addon and files.
    addon = addon_with_files
    addon.update(status=addon_status)
    version = addon.versions.get()
    version.files.filter(status=amo.STATUS_AWAITING_REVIEW).update(
        status=file_status)
    # Get the review helper.
    helper = ReviewHelper(mock_request, addon, version)
    assert isinstance(helper.handler, review_class)
    helper.set_review_handler(mock_request)
    assert helper.handler.review_type == review_type
    helper.set_data({'comments': 'testing review scenarios'})
    # Run the action (process_public, process_sandbox).
    try:
        getattr(helper.handler, review_action)()
    except AssertionError:
        # Some scenarios are expected to fail. We don't need to check it here,
        # the scenario has the final statuses, and those are the ones we want
        # to check.
        pass
    # Check the final statuses.
    assert addon.reload().status == final_addon_status
    assert list(version.files.values_list('status', flat=True)) == ([
        amo.STATUS_BETA, amo.STATUS_DISABLED, final_file_status,
        final_file_status
    ])
示例#2
0
def test_review_scenario(mock_request, addon_with_files, review_action,
                         addon_status, file_status, review_class, review_type,
                         final_addon_status, final_file_status):
    # Setup the addon and files.
    addon = addon_with_files
    addon.update(status=addon_status)
    version = addon.versions.get()
    version.files.filter(
        status=amo.STATUS_AWAITING_REVIEW).update(status=file_status)
    # Get the review helper.
    helper = ReviewHelper(mock_request, addon, version)
    assert isinstance(helper.handler, review_class)
    helper.set_review_handler(mock_request)
    assert helper.handler.review_type == review_type
    helper.set_data({'comments': 'testing review scenarios'})
    # Run the action (process_public, process_sandbox).
    try:
        getattr(helper.handler, review_action)()
    except AssertionError:
        # Some scenarios are expected to fail. We don't need to check it here,
        # the scenario has the final statuses, and those are the ones we want
        # to check.
        pass
    # Check the final statuses.
    assert addon.reload().status == final_addon_status
    assert list(version.files.values_list('status', flat=True)) == (
        [amo.STATUS_DISABLED, final_file_status, final_file_status])
def test_review_scenario(
    mock_request,
    review_action,
    addon_status,
    file_status,
    review_class,
    review_type,
    final_addon_status,
    final_file_status,
):
    # Setup the addon and files.
    addon = addon_factory(
        name='My Addon',
        slug='my-addon',
        status=addon_status,
        file_kw={'status': file_status},
    )
    version = addon.versions.get()
    # Get the review helper.
    helper = ReviewHelper(mock_request, addon, version)
    assert isinstance(helper.handler, review_class)
    helper.set_review_handler(mock_request)
    assert helper.handler.review_type == review_type
    helper.set_data({'comments': 'testing review scenarios'})
    # Run the action (approve_latest_version, reject_latest_version).
    try:
        getattr(helper.handler, review_action)()
    except AssertionError:
        # Some scenarios are expected to fail. We don't need to check it here,
        # the scenario has the final statuses, and those are the ones we want
        # to check.
        pass
    # Check the final statuses.
    assert addon.reload().status == final_addon_status
    assert version.file.reload().status == final_file_status
示例#4
0
def approve_files(files_with_review_type):
    """Approve the files waiting for review (and sign them)."""
    for file_, review_type in files_with_review_type:
        version = file_.version
        addon = version.addon
        helper = ReviewHelper(request=None, addon=addon, version=file_.version)
        # Provide the file to review/sign to the helper.
        helper.set_data({'addon_files': [file_], 'comments': u'bulk approval'})
        if review_type == 'full':
            # Already approved, or waiting for a full review.
            helper.handler.process_public()
            log.info(u'File %s (addon %s) approved', file_.pk, addon.pk)
        else:
            log.info(
                u'File %s (addon %s) not approved: '
                u'addon status: %s, file status: %s', file_.pk, addon.pk,
                addon.status, file_.status)
示例#5
0
def approve_files(files_with_review_type):
    """Approve the files waiting for review (and sign them)."""
    for file_, review_type in files_with_review_type:
        version = file_.version
        addon = version.addon
        helper = ReviewHelper(request=None, addon=addon,
                              version=file_.version)
        # Provide the file to review/sign to the helper.
        helper.set_data({'addon_files': [file_],
                         'comments': u'bulk approval'})
        if review_type == 'full':
            # Already approved, or waiting for a full review.
            helper.handler.process_public()
            log.info(u'File %s (addon %s) approved', file_.pk, addon.pk)
        else:
            log.info(u'File %s (addon %s) not approved: '
                     u'addon status: %s, file status: %s',
                     file_.pk, addon.pk, addon.status, file_.status)