""" Check setup page at /generate URL. MemeGenerator Ruizhe Deng rxd@umich.edu """ import re import bs4 def test_generate_empty(client): """Test if only no field is valid.""" url = '/generate?top=&url=https%3A%2F%2Flive.staticflickr.com%2F3606%2F3369014165_7441c25d45_q.jpg&bot=' response = client.get(url) soup = bs4.BeautifulSoup(response.data, "html.parser") assert response.status_code == 200 src = [x.get("src") for x in soup.find_all('img')] # check if there is only one image link assert len(src) == 1 # check if that link to the image is correct first_part = src[0].split('?')[0] first_part_reg = 'https:\/\/api\.memegen\.link\/images\/custom\/[a-zA-Z0-9_]*\/[a-zA-Z0-9_]*\.png' assert re.match(first_part_reg, first_part) is not None def test_generate_one_empty(client): """Test if only one field is valid.""" bot_url = '/generate?top=&url=https%3A%2F%2Flive.staticflickr.com%2F3606%2F3369014165_7441c25d45_q.jpg&bot=bot' top_url = '/generate?top=top&url=https%3A%2F%2Flive.staticflickr.com%2F3606%2F3369014165_7441c25d45_q.jpg&bot=' # bot first response = client.get(bot_url) soup = bs4.BeautifulSoup(response.data, "html.parser") assert response.status_code == 200 # check for link correctness src = [x.get("src") for x in soup.find_all('img')] first_part = src[0].split('?')[0] first_part_reg = 'https:\/\/api\.memegen\.link\/images\/custom\/[a-zA-Z0-9_]*\/[a-zA-Z0-9_]*\.png' assert re.match(first_part_reg, first_part) is not None # top check response = client.get(top_url) soup = bs4.BeautifulSoup(response.data, "html.parser") assert response.status_code == 200 # check for link correctness src = [x.get("src") for x in soup.find_all('img')] first_part = src[0].split('?')[0] first_part_reg = 'https:\/\/api\.memegen\.link\/images\/custom\/[a-zA-Z0-9_]*\/[a-zA-Z0-9_]*\.png' assert re.match(first_part_reg, first_part) is not None def check_generate_full(client): """Test if fully filled is valid.""" url = '/generate?top=a&url=https%3A%2F%2Flive.staticflickr.com%2F3606%2F3369014165_7441c25d45_q.jpg&bot=c' response = client.get(url) soup = bs4.BeautifulSoup(response.data, "html.parser") assert response.status_code == 200 # check for link correctness src = [x.get("src") for x in soup.find_all('img')] first_part = src[0].split('?')[0] first_part_reg = 'https:\/\/api\.memegen\.link\/images\/custom\/[a-zA-Z0-9_]*\/[a-zA-Z0-9_]*\.png' assert re.match(first_part_reg, first_part) is not None