Skip to content
Snippets Groups Projects
test_generate.py 2.40 KiB
"""
Check setup page at /generate URL.

MemeGenerator

Ruizhe Deng rxd@umich.edu
"""
import re
import bs4

def test_generate_empty(client):
    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):
    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):
    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