Rename slugs to passwords in the tests

This commit is contained in:
Micah Lee 2019-05-22 20:55:31 -07:00
parent 6d057c0078
commit cec63daf3a
11 changed files with 65 additions and 67 deletions

View file

@ -127,7 +127,7 @@ class GuiBaseTest(object):
# Upload a file # Upload a file
files = {'file[]': open('/tmp/test.txt', 'rb')} files = {'file[]': open('/tmp/test.txt', 'rb')}
if not public_mode: if not public_mode:
path = 'http://127.0.0.1:{}/{}/upload'.format(self.gui.app.port, mode.web.slug) path = 'http://127.0.0.1:{}/{}/upload'.format(self.gui.app.port, mode.web.password)
else: else:
path = 'http://127.0.0.1:{}/upload'.format(self.gui.app.port) path = 'http://127.0.0.1:{}/upload'.format(self.gui.app.port)
response = requests.post(path, files=files) response = requests.post(path, files=files)
@ -138,7 +138,7 @@ class GuiBaseTest(object):
if public_mode: if public_mode:
url = "http://127.0.0.1:{}/download".format(self.gui.app.port) url = "http://127.0.0.1:{}/download".format(self.gui.app.port)
else: else:
url = "http://127.0.0.1:{}/{}/download".format(self.gui.app.port, mode.web.slug) url = "http://127.0.0.1:{}/{}/download".format(self.gui.app.port, mode.web.password)
r = requests.get(url) r = requests.get(url)
QtTest.QTest.qWait(2000) QtTest.QTest.qWait(2000)
@ -190,12 +190,12 @@ class GuiBaseTest(object):
self.assertEqual(sock.connect_ex(('127.0.0.1',self.gui.app.port)), 0) self.assertEqual(sock.connect_ex(('127.0.0.1',self.gui.app.port)), 0)
def have_a_slug(self, mode, public_mode): def have_a_password(self, mode, public_mode):
'''Test that we have a valid slug''' '''Test that we have a valid password'''
if not public_mode: if not public_mode:
self.assertRegex(mode.server_status.web.slug, r'(\w+)-(\w+)') self.assertRegex(mode.server_status.web.password, r'(\w+)-(\w+)')
else: else:
self.assertIsNone(mode.server_status.web.slug, r'(\w+)-(\w+)') self.assertIsNone(mode.server_status.web.password, r'(\w+)-(\w+)')
def url_description_shown(self, mode): def url_description_shown(self, mode):
@ -212,7 +212,7 @@ class GuiBaseTest(object):
if public_mode: if public_mode:
self.assertEqual(clipboard.text(), 'http://127.0.0.1:{}'.format(self.gui.app.port)) self.assertEqual(clipboard.text(), 'http://127.0.0.1:{}'.format(self.gui.app.port))
else: else:
self.assertEqual(clipboard.text(), 'http://127.0.0.1:{}/{}'.format(self.gui.app.port, mode.server_status.web.slug)) self.assertEqual(clipboard.text(), 'http://127.0.0.1:{}/{}'.format(self.gui.app.port, mode.server_status.web.password))
def server_status_indicator_says_started(self, mode): def server_status_indicator_says_started(self, mode):
@ -230,7 +230,7 @@ class GuiBaseTest(object):
s.connect(('127.0.0.1', self.gui.app.port)) s.connect(('127.0.0.1', self.gui.app.port))
if not public_mode: if not public_mode:
path = '/{}'.format(mode.server_status.web.slug) path = '/{}'.format(mode.server_status.web.password)
else: else:
path = '/' path = '/'

View file

@ -9,7 +9,7 @@ class GuiReceiveTest(GuiBaseTest):
'''Test that we can upload the file''' '''Test that we can upload the file'''
files = {'file[]': open(file_to_upload, 'rb')} files = {'file[]': open(file_to_upload, 'rb')}
if not public_mode: if not public_mode:
path = 'http://127.0.0.1:{}/{}/upload'.format(self.gui.app.port, self.gui.receive_mode.web.slug) path = 'http://127.0.0.1:{}/{}/upload'.format(self.gui.app.port, self.gui.receive_mode.web.password)
else: else:
path = 'http://127.0.0.1:{}/upload'.format(self.gui.app.port) path = 'http://127.0.0.1:{}/upload'.format(self.gui.app.port)
response = requests.post(path, files=files) response = requests.post(path, files=files)
@ -40,7 +40,7 @@ class GuiReceiveTest(GuiBaseTest):
'''Test that we can't upload the file when permissions are wrong, and expected content is shown''' '''Test that we can't upload the file when permissions are wrong, and expected content is shown'''
files = {'file[]': open('/tmp/test.txt', 'rb')} files = {'file[]': open('/tmp/test.txt', 'rb')}
if not public_mode: if not public_mode:
path = 'http://127.0.0.1:{}/{}/upload'.format(self.gui.app.port, self.gui.receive_mode.web.slug) path = 'http://127.0.0.1:{}/{}/upload'.format(self.gui.app.port, self.gui.receive_mode.web.password)
else: else:
path = 'http://127.0.0.1:{}/upload'.format(self.gui.app.port) path = 'http://127.0.0.1:{}/upload'.format(self.gui.app.port)
response = requests.post(path, files=files) response = requests.post(path, files=files)
@ -61,7 +61,7 @@ class GuiReceiveTest(GuiBaseTest):
def uploading_zero_files_shouldnt_change_ui(self, mode, public_mode): def uploading_zero_files_shouldnt_change_ui(self, mode, public_mode):
'''If you submit the receive mode form without selecting any files, the UI shouldn't get updated''' '''If you submit the receive mode form without selecting any files, the UI shouldn't get updated'''
if not public_mode: if not public_mode:
path = 'http://127.0.0.1:{}/{}/upload'.format(self.gui.app.port, self.gui.receive_mode.web.slug) path = 'http://127.0.0.1:{}/{}/upload'.format(self.gui.app.port, self.gui.receive_mode.web.password)
else: else:
path = 'http://127.0.0.1:{}/upload'.format(self.gui.app.port) path = 'http://127.0.0.1:{}/upload'.format(self.gui.app.port)
@ -93,7 +93,7 @@ class GuiReceiveTest(GuiBaseTest):
self.settings_button_is_hidden() self.settings_button_is_hidden()
self.server_is_started(self.gui.receive_mode) self.server_is_started(self.gui.receive_mode)
self.web_server_is_running() self.web_server_is_running()
self.have_a_slug(self.gui.receive_mode, public_mode) self.have_a_password(self.gui.receive_mode, public_mode)
self.url_description_shown(self.gui.receive_mode) self.url_description_shown(self.gui.receive_mode)
self.have_copy_url_button(self.gui.receive_mode, public_mode) self.have_copy_url_button(self.gui.receive_mode, public_mode)
self.server_status_indicator_says_started(self.gui.receive_mode) self.server_status_indicator_says_started(self.gui.receive_mode)

View file

@ -7,9 +7,9 @@ from .GuiBaseTest import GuiBaseTest
class GuiShareTest(GuiBaseTest): class GuiShareTest(GuiBaseTest):
# Persistence tests # Persistence tests
def have_same_slug(self, slug): def have_same_password(self, password):
'''Test that we have the same slug''' '''Test that we have the same password'''
self.assertEqual(self.gui.share_mode.server_status.web.slug, slug) self.assertEqual(self.gui.share_mode.server_status.web.password, password)
# Share-specific tests # Share-specific tests
@ -73,7 +73,7 @@ class GuiShareTest(GuiBaseTest):
if public_mode: if public_mode:
path = '/download' path = '/download'
else: else:
path = '{}/download'.format(self.gui.share_mode.web.slug) path = '{}/download'.format(self.gui.share_mode.web.password)
http_request = 'GET {} HTTP/1.0\r\n'.format(path) http_request = 'GET {} HTTP/1.0\r\n'.format(path)
http_request += 'Host: 127.0.0.1\r\n' http_request += 'Host: 127.0.0.1\r\n'
@ -139,7 +139,7 @@ class GuiShareTest(GuiBaseTest):
self.settings_button_is_hidden() self.settings_button_is_hidden()
self.server_is_started(self.gui.share_mode, startup_time) self.server_is_started(self.gui.share_mode, startup_time)
self.web_server_is_running() self.web_server_is_running()
self.have_a_slug(self.gui.share_mode, public_mode) self.have_a_password(self.gui.share_mode, public_mode)
self.url_description_shown(self.gui.share_mode) self.url_description_shown(self.gui.share_mode)
self.have_copy_url_button(self.gui.share_mode, public_mode) self.have_copy_url_button(self.gui.share_mode, public_mode)
self.server_status_indicator_says_started(self.gui.share_mode) self.server_status_indicator_says_started(self.gui.share_mode)
@ -178,12 +178,12 @@ class GuiShareTest(GuiBaseTest):
def run_all_share_mode_persistent_tests(self, public_mode, stay_open): def run_all_share_mode_persistent_tests(self, public_mode, stay_open):
"""Same as end-to-end share tests but also test the slug is the same on multiple shared""" """Same as end-to-end share tests but also test the password is the same on multiple shared"""
self.run_all_share_mode_setup_tests() self.run_all_share_mode_setup_tests()
self.run_all_share_mode_started_tests(public_mode) self.run_all_share_mode_started_tests(public_mode)
slug = self.gui.share_mode.server_status.web.slug password = self.gui.share_mode.server_status.web.password
self.run_all_share_mode_download_tests(public_mode, stay_open) self.run_all_share_mode_download_tests(public_mode, stay_open)
self.have_same_slug(slug) self.have_same_password(password)
def run_all_share_mode_timer_tests(self, public_mode): def run_all_share_mode_timer_tests(self, public_mode):

View file

@ -76,7 +76,7 @@ class TorGuiBaseTest(GuiBaseTest):
# Upload a file # Upload a file
files = {'file[]': open('/tmp/test.txt', 'rb')} files = {'file[]': open('/tmp/test.txt', 'rb')}
if not public_mode: if not public_mode:
path = 'http://{}/{}/upload'.format(self.gui.app.onion_host, mode.web.slug) path = 'http://{}/{}/upload'.format(self.gui.app.onion_host, mode.web.password)
else: else:
path = 'http://{}/upload'.format(self.gui.app.onion_host) path = 'http://{}/upload'.format(self.gui.app.onion_host)
response = session.post(path, files=files) response = session.post(path, files=files)
@ -87,7 +87,7 @@ class TorGuiBaseTest(GuiBaseTest):
if public_mode: if public_mode:
path = "http://{}/download".format(self.gui.app.onion_host) path = "http://{}/download".format(self.gui.app.onion_host)
else: else:
path = "http://{}/{}/download".format(self.gui.app.onion_host, mode.web.slug) path = "http://{}/{}/download".format(self.gui.app.onion_host, mode.web.password)
response = session.get(path) response = session.get(path)
QtTest.QTest.qWait(4000) QtTest.QTest.qWait(4000)
@ -111,7 +111,7 @@ class TorGuiBaseTest(GuiBaseTest):
s.settimeout(60) s.settimeout(60)
s.connect((self.gui.app.onion_host, 80)) s.connect((self.gui.app.onion_host, 80))
if not public_mode: if not public_mode:
path = '/{}'.format(mode.server_status.web.slug) path = '/{}'.format(mode.server_status.web.password)
else: else:
path = '/' path = '/'
http_request = 'GET {} HTTP/1.0\r\n'.format(path) http_request = 'GET {} HTTP/1.0\r\n'.format(path)
@ -138,7 +138,7 @@ class TorGuiBaseTest(GuiBaseTest):
if public_mode: if public_mode:
self.assertEqual(clipboard.text(), 'http://{}'.format(self.gui.app.onion_host)) self.assertEqual(clipboard.text(), 'http://{}'.format(self.gui.app.onion_host))
else: else:
self.assertEqual(clipboard.text(), 'http://{}/{}'.format(self.gui.app.onion_host, mode.server_status.web.slug)) self.assertEqual(clipboard.text(), 'http://{}/{}'.format(self.gui.app.onion_host, mode.server_status.web.password))
# Stealth tests # Stealth tests

View file

@ -13,7 +13,7 @@ class TorGuiReceiveTest(TorGuiBaseTest):
session.proxies['http'] = 'socks5h://{}:{}'.format(socks_address, socks_port) session.proxies['http'] = 'socks5h://{}:{}'.format(socks_address, socks_port)
files = {'file[]': open(file_to_upload, 'rb')} files = {'file[]': open(file_to_upload, 'rb')}
if not public_mode: if not public_mode:
path = 'http://{}/{}/upload'.format(self.gui.app.onion_host, self.gui.receive_mode.web.slug) path = 'http://{}/{}/upload'.format(self.gui.app.onion_host, self.gui.receive_mode.web.password)
else: else:
path = 'http://{}/upload'.format(self.gui.app.onion_host) path = 'http://{}/upload'.format(self.gui.app.onion_host)
response = session.post(path, files=files) response = session.post(path, files=files)
@ -35,7 +35,7 @@ class TorGuiReceiveTest(TorGuiBaseTest):
self.server_is_started(self.gui.receive_mode, startup_time=45000) self.server_is_started(self.gui.receive_mode, startup_time=45000)
self.web_server_is_running() self.web_server_is_running()
self.have_an_onion_service() self.have_an_onion_service()
self.have_a_slug(self.gui.receive_mode, public_mode) self.have_a_password(self.gui.receive_mode, public_mode)
self.url_description_shown(self.gui.receive_mode) self.url_description_shown(self.gui.receive_mode)
self.have_copy_url_button(self.gui.receive_mode, public_mode) self.have_copy_url_button(self.gui.receive_mode, public_mode)
self.server_status_indicator_says_started(self.gui.receive_mode) self.server_status_indicator_says_started(self.gui.receive_mode)
@ -56,4 +56,3 @@ class TorGuiReceiveTest(TorGuiBaseTest):
self.server_working_on_start_button_pressed(self.gui.receive_mode) self.server_working_on_start_button_pressed(self.gui.receive_mode)
self.server_is_started(self.gui.receive_mode, startup_time=45000) self.server_is_started(self.gui.receive_mode, startup_time=45000)
self.history_indicator(self.gui.receive_mode, public_mode) self.history_indicator(self.gui.receive_mode, public_mode)

View file

@ -17,7 +17,7 @@ class TorGuiShareTest(TorGuiBaseTest, GuiShareTest):
if public_mode: if public_mode:
path = "http://{}/download".format(self.gui.app.onion_host) path = "http://{}/download".format(self.gui.app.onion_host)
else: else:
path = "http://{}/{}/download".format(self.gui.app.onion_host, self.gui.share_mode.web.slug) path = "http://{}/{}/download".format(self.gui.app.onion_host, self.gui.share_mode.web.password)
response = session.get(path, stream=True) response = session.get(path, stream=True)
QtTest.QTest.qWait(4000) QtTest.QTest.qWait(4000)
@ -53,7 +53,7 @@ class TorGuiShareTest(TorGuiBaseTest, GuiShareTest):
self.server_is_started(self.gui.share_mode, startup_time=45000) self.server_is_started(self.gui.share_mode, startup_time=45000)
self.web_server_is_running() self.web_server_is_running()
self.have_an_onion_service() self.have_an_onion_service()
self.have_a_slug(self.gui.share_mode, public_mode) self.have_a_password(self.gui.share_mode, public_mode)
self.url_description_shown(self.gui.share_mode) self.url_description_shown(self.gui.share_mode)
self.have_copy_url_button(self.gui.share_mode, public_mode) self.have_copy_url_button(self.gui.share_mode, public_mode)
self.server_status_indicator_says_started(self.gui.share_mode) self.server_status_indicator_says_started(self.gui.share_mode)
@ -74,14 +74,14 @@ class TorGuiShareTest(TorGuiBaseTest, GuiShareTest):
def run_all_share_mode_persistent_tests(self, public_mode, stay_open): def run_all_share_mode_persistent_tests(self, public_mode, stay_open):
"""Same as end-to-end share tests but also test the slug is the same on multiple shared""" """Same as end-to-end share tests but also test the password is the same on multiple shared"""
self.run_all_share_mode_setup_tests() self.run_all_share_mode_setup_tests()
self.run_all_share_mode_started_tests(public_mode) self.run_all_share_mode_started_tests(public_mode)
slug = self.gui.share_mode.server_status.web.slug password = self.gui.share_mode.server_status.web.password
onion = self.gui.app.onion_host onion = self.gui.app.onion_host
self.run_all_share_mode_download_tests(public_mode, stay_open) self.run_all_share_mode_download_tests(public_mode, stay_open)
self.have_same_onion(onion) self.have_same_onion(onion)
self.have_same_slug(slug) self.have_same_password(password)
def run_all_share_mode_timer_tests(self, public_mode): def run_all_share_mode_timer_tests(self, public_mode):
@ -92,4 +92,3 @@ class TorGuiShareTest(TorGuiBaseTest, GuiShareTest):
self.autostop_timer_widget_hidden(self.gui.share_mode) self.autostop_timer_widget_hidden(self.gui.share_mode)
self.server_timed_out(self.gui.share_mode, 125000) self.server_timed_out(self.gui.share_mode, 125000)
self.web_server_is_stopped() self.web_server_is_stopped()

View file

@ -4,12 +4,12 @@ import unittest
from .GuiShareTest import GuiShareTest from .GuiShareTest import GuiShareTest
class LocalShareModePersistentSlugTest(unittest.TestCase, GuiShareTest): class LocalShareModePersistentPasswordTest(unittest.TestCase, GuiShareTest):
@classmethod @classmethod
def setUpClass(cls): def setUpClass(cls):
test_settings = { test_settings = {
"public_mode": False, "public_mode": False,
"slug": "", "password": "",
"save_private_key": True, "save_private_key": True,
"close_after_first_download": False, "close_after_first_download": False,
} }

View file

@ -4,13 +4,13 @@ import unittest
from .TorGuiShareTest import TorGuiShareTest from .TorGuiShareTest import TorGuiShareTest
class ShareModePersistentSlugTest(unittest.TestCase, TorGuiShareTest): class ShareModePersistentPasswordTest(unittest.TestCase, TorGuiShareTest):
@classmethod @classmethod
def setUpClass(cls): def setUpClass(cls):
test_settings = { test_settings = {
"use_legacy_v2_onions": True, "use_legacy_v2_onions": True,
"public_mode": False, "public_mode": False,
"slug": "", "password": "",
"save_private_key": True, "save_private_key": True,
"close_after_first_download": False, "close_after_first_download": False,
} }

View file

@ -33,13 +33,13 @@ LOG_MSG_REGEX = re.compile(r"""
^\[Jun\ 06\ 2013\ 11:05:00\] ^\[Jun\ 06\ 2013\ 11:05:00\]
\ TestModule\.<function\ TestLog\.test_output\.<locals>\.dummy_func \ TestModule\.<function\ TestLog\.test_output\.<locals>\.dummy_func
\ at\ 0x[a-f0-9]+>(:\ TEST_MSG)?$""", re.VERBOSE) \ at\ 0x[a-f0-9]+>(:\ TEST_MSG)?$""", re.VERBOSE)
SLUG_REGEX = re.compile(r'^([a-z]+)(-[a-z]+)?-([a-z]+)(-[a-z]+)?$') PASSWORD_REGEX = re.compile(r'^([a-z]+)(-[a-z]+)?-([a-z]+)(-[a-z]+)?$')
# TODO: Improve the Common tests to test it all as a single class # TODO: Improve the Common tests to test it all as a single class
class TestBuildSlug: class TestBuildPassword:
@pytest.mark.parametrize('test_input,expected', ( @pytest.mark.parametrize('test_input,expected', (
# VALID, two lowercase words, separated by a hyphen # VALID, two lowercase words, separated by a hyphen
('syrup-enzyme', True), ('syrup-enzyme', True),
@ -60,8 +60,8 @@ class TestBuildSlug:
('too-many-hyphens-', False), ('too-many-hyphens-', False),
('symbols-!@#$%', False) ('symbols-!@#$%', False)
)) ))
def test_build_slug_regex(self, test_input, expected): def test_build_password_regex(self, test_input, expected):
""" Test that `SLUG_REGEX` accounts for the following patterns """ Test that `PASSWORD_REGEX` accounts for the following patterns
There are a few hyphenated words in `wordlist.txt`: There are a few hyphenated words in `wordlist.txt`:
* drop-down * drop-down
@ -69,17 +69,17 @@ class TestBuildSlug:
* t-shirt * t-shirt
* yo-yo * yo-yo
These words cause a few extra potential slug patterns: These words cause a few extra potential password patterns:
* word-word * word-word
* hyphenated-word-word * hyphenated-word-word
* word-hyphenated-word * word-hyphenated-word
* hyphenated-word-hyphenated-word * hyphenated-word-hyphenated-word
""" """
assert bool(SLUG_REGEX.match(test_input)) == expected assert bool(PASSWORD_REGEX.match(test_input)) == expected
def test_build_slug_unique(self, common_obj, sys_onionshare_dev_mode): def test_build_password_unique(self, common_obj, sys_onionshare_dev_mode):
assert common_obj.build_slug() != common_obj.build_slug() assert common_obj.build_password() != common_obj.build_password()
class TestDirSize: class TestDirSize:

View file

@ -63,7 +63,7 @@ class TestSettings:
'use_legacy_v2_onions': False, 'use_legacy_v2_onions': False,
'save_private_key': False, 'save_private_key': False,
'private_key': '', 'private_key': '',
'slug': '', 'password': '',
'hidservauth_string': '', 'hidservauth_string': '',
'data_dir': os.path.expanduser('~/OnionShare'), 'data_dir': os.path.expanduser('~/OnionShare'),
'public_mode': False 'public_mode': False

View file

@ -44,7 +44,7 @@ def web_obj(common_obj, mode, num_files=0):
common_obj.settings = Settings(common_obj) common_obj.settings = Settings(common_obj)
strings.load_strings(common_obj) strings.load_strings(common_obj)
web = Web(common_obj, False, mode) web = Web(common_obj, False, mode)
web.generate_slug() web.generate_password()
web.stay_open = True web.stay_open = True
web.running = True web.running = True
@ -76,17 +76,17 @@ class TestWeb:
res.get_data() res.get_data()
assert res.status_code == 404 assert res.status_code == 404
res = c.get('/invalidslug'.format(web.slug)) res = c.get('/invalidpassword'.format(web.password))
res.get_data() res.get_data()
assert res.status_code == 404 assert res.status_code == 404
# Load download page # Load download page
res = c.get('/{}'.format(web.slug)) res = c.get('/{}'.format(web.password))
res.get_data() res.get_data()
assert res.status_code == 200 assert res.status_code == 200
# Download # Download
res = c.get('/{}/download'.format(web.slug)) res = c.get('/{}/download'.format(web.password))
res.get_data() res.get_data()
assert res.status_code == 200 assert res.status_code == 200
assert res.mimetype == 'application/zip' assert res.mimetype == 'application/zip'
@ -99,7 +99,7 @@ class TestWeb:
with web.app.test_client() as c: with web.app.test_client() as c:
# Download the first time # Download the first time
res = c.get('/{}/download'.format(web.slug)) res = c.get('/{}/download'.format(web.password))
res.get_data() res.get_data()
assert res.status_code == 200 assert res.status_code == 200
assert res.mimetype == 'application/zip' assert res.mimetype == 'application/zip'
@ -114,7 +114,7 @@ class TestWeb:
with web.app.test_client() as c: with web.app.test_client() as c:
# Download the first time # Download the first time
res = c.get('/{}/download'.format(web.slug)) res = c.get('/{}/download'.format(web.password))
res.get_data() res.get_data()
assert res.status_code == 200 assert res.status_code == 200
assert res.mimetype == 'application/zip' assert res.mimetype == 'application/zip'
@ -130,12 +130,12 @@ class TestWeb:
res.get_data() res.get_data()
assert res.status_code == 404 assert res.status_code == 404
res = c.get('/invalidslug'.format(web.slug)) res = c.get('/invalidpassword'.format(web.password))
res.get_data() res.get_data()
assert res.status_code == 404 assert res.status_code == 404
# Load upload page # Load upload page
res = c.get('/{}'.format(web.slug)) res = c.get('/{}'.format(web.password))
res.get_data() res.get_data()
assert res.status_code == 200 assert res.status_code == 200
@ -149,8 +149,8 @@ class TestWeb:
data1 = res.get_data() data1 = res.get_data()
assert res.status_code == 200 assert res.status_code == 200
# /[slug] should be a 404 # /[password] should be a 404
res = c.get('/{}'.format(web.slug)) res = c.get('/{}'.format(web.password))
data2 = res.get_data() data2 = res.get_data()
assert res.status_code == 404 assert res.status_code == 404
@ -164,8 +164,8 @@ class TestWeb:
data1 = res.get_data() data1 = res.get_data()
assert res.status_code == 404 assert res.status_code == 404
# Upload page should be accessible from /[slug] # Upload page should be accessible from /[password]
res = c.get('/{}'.format(web.slug)) res = c.get('/{}'.format(web.password))
data2 = res.get_data() data2 = res.get_data()
assert res.status_code == 200 assert res.status_code == 200