63 lines
2.4 KiB
Python
63 lines
2.4 KiB
Python
import io
|
|
|
|
from pdfminer.high_level import extract_text
|
|
from selenium.webdriver.common.keys import Keys
|
|
|
|
from .base import SearchExportTester
|
|
|
|
|
|
class SteeringCommitteePrintLabels(SearchExportTester):
|
|
"""Tests the pdf labels for the SteeringCommitee show all contacts names"""
|
|
def __init__(self, *args, **kwargs):
|
|
super().__init__(*args, **kwargs)
|
|
self.title("Steering Committee Print Labels")
|
|
self.desc(
|
|
"Testing the pdf labels for the SteeringCommittee show all contacts names"
|
|
)
|
|
self.group_dropdown = "s2id_autogen2"
|
|
self.search_button = "_qf_Basic_refresh"
|
|
self.mail_label_option = "select2-result-label-19"
|
|
# Using this to count amount of people in the exported pdf
|
|
# This will fail if someone is added that doesn't have a UK adddress
|
|
self.pdf_search_string = "UNITED KINGDOM"
|
|
|
|
def _test(self):
|
|
self.browser.get(self.search_url)
|
|
group_dropdown = self.find_element_by_id(self.group_dropdown)
|
|
group_dropdown.click()
|
|
group_dropdown.send_keys("Steering Committee" + Keys.ENTER)
|
|
self.find_element_by_id(self.search_button).click()
|
|
self._wait_for_search_to_load()
|
|
result_no = self._get_contact_search_number()
|
|
self.debug("exporting results using the magic dropdown")
|
|
self._select_option_from_magic_dropdown(self.mail_label_option)
|
|
# By omitting the field, we are effectively disabling the do not mail filter
|
|
data = {
|
|
"_qf_default": "Label:submit",
|
|
# Smallest labels, will show 24 contacts on one page
|
|
"label_name": "3475",
|
|
"location_type_id": "",
|
|
"_qf_Label_submit": "Make+Mailing+Labels"
|
|
}
|
|
res = self.download_export(data)
|
|
pdf_text = extract_text(io.BytesIO(res.content))
|
|
label_count = pdf_text.count(self.pdf_search_string)
|
|
if result_no == label_count:
|
|
self.passed(
|
|
"no missing mailing labels from pdf export. Expected: %d, Actual %d"
|
|
% (result_no, label_count)
|
|
)
|
|
else:
|
|
self.failed(
|
|
"missing mailing labels from the pdf export. Expected: %d, Actual %d"
|
|
% (result_no, label_count)
|
|
)
|
|
|
|
def test(self):
|
|
try:
|
|
self.login()
|
|
self._test()
|
|
finally:
|
|
self.logout()
|
|
self.browser.close()
|