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) == ("", [])
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) == ('', [])
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])
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])
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
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]
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 == []
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 == []
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]