Пример #1
0
def test_get_invalid_pages_blank_page():
    packet = io.BytesIO()
    cv = canvas.Canvas(packet, pagesize=A4)
    cv.setStrokeColor(white)
    cv.setFillColor(white)
    cv.rect(0, 0, 1000, 1000, stroke=1, fill=1)
    cv.save()
    packet.seek(0)

    assert get_invalid_pages_with_message(packet) == ("", [])
Пример #2
0
def test_get_invalid_pages_second_page(x, y, expected_failed):
    packet = io.BytesIO()
    cv = canvas.Canvas(packet, pagesize=A4)
    cv.setStrokeColor(white)
    cv.setFillColor(white)
    cv.rect(0, 0, 1000, 1000, stroke=1, fill=1)
    cv.showPage()
    cv.setStrokeColor(white)
    cv.setFillColor(white)
    cv.rect(0, 0, 1000, 1000, stroke=1, fill=1)
    cv.setStrokeColor(black)
    cv.setFillColor(black)

    cv.rect(x, y, 5, 5, stroke=1, fill=1)

    cv.save()
    packet.seek(0)

    if expected_failed:
        assert get_invalid_pages_with_message(packet) == (
            'content-outside-printable-area', [2])
    else:
        assert get_invalid_pages_with_message(packet) == ('', [])
Пример #3
0
def test_get_invalid_pages_grey_bottom_corner():
    packet = io.BytesIO()
    cv = canvas.Canvas(packet, pagesize=A4)
    cv.setStrokeColor(white)
    cv.setFillColor(white)
    cv.rect(0, 0, 1000, 1000, stroke=1, fill=1)
    cv.setStrokeColor(grey)
    cv.setFillColor(grey)
    cv.rect(0, 0, 10, 10, stroke=1, fill=1)
    cv.save()
    packet.seek(0)

    assert get_invalid_pages_with_message(packet) == (
        'content-outside-printable-area', [1])
Пример #4
0
def test_get_invalid_pages_address_margin():
    packet = io.BytesIO()
    cv = canvas.Canvas(packet, pagesize=A4)
    cv.setStrokeColor(white)
    cv.setFillColor(white)
    cv.rect(0, 0, 1000, 1000, stroke=1, fill=1)

    cv.setStrokeColor(black)
    cv.setFillColor(black)

    # This rectangle is the address margin, but 1 mm smaller on each side to account for aliasing
    cv.rect(121 * mm, 203 * mm, 4 * mm, 64 * mm, stroke=1, fill=1)

    cv.save()
    packet.seek(0)

    assert get_invalid_pages_with_message(packet) == (
        'content-outside-printable-area', [1])
Пример #5
0
def test_get_invalid_pages_black_text(x, y, page, expected_message):
    packet = io.BytesIO()
    cv = canvas.Canvas(packet, pagesize=A4)
    cv.setStrokeColor(white)
    cv.setFillColor(white)
    cv.rect(0, 0, 1000, 1000, stroke=1, fill=1)

    if page > 1:
        cv.showPage()

    cv.setStrokeColor(black)
    cv.setFillColor(black)
    cv.setFont('Arial', 6)
    cv.drawString(x, y,
                  'This is a test string used to detect non white on a page')

    cv.save()
    packet.seek(0)
    assert get_invalid_pages_with_message(packet) == expected_message
Пример #6
0
def test_get_invalid_pages_rejects_later_pages_with_notify_tags():
    message, invalid_pages = get_invalid_pages_with_message(
        BytesIO(notify_tags_on_page_2_and_4))
    assert message == 'notify-tag-found-in-content'
    assert invalid_pages == [2, 4]
Пример #7
0
def test_get_invalid_pages_ignores_notify_tags_on_page_1():
    message, invalid_pages = get_invalid_pages_with_message(
        BytesIO(already_has_notify_tag))
    assert message == ''
    assert invalid_pages == []
Пример #8
0
def test_get_invalid_pages_is_ok_with_landscape_pages_that_are_rotated():
    # the page is orientated landscape but rotated 90º - all the text is sideways but it's still portrait
    message, invalid_pages = get_invalid_pages_with_message(
        BytesIO(portrait_rotated_page))
    assert message == ''
    assert invalid_pages == []
Пример #9
0
def test_get_invalid_pages_not_a4_oriented(pdf):
    message, invalid_pages = get_invalid_pages_with_message(BytesIO(pdf))
    assert message == 'letter-not-a4-portrait-oriented'
    assert invalid_pages == [1]