-additional_headers = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'} # otherwise site with content '<HTML></HTML>' is returned
-# Accept-Encoding: identity # to get non-compressed things back
+session.headers.update({
+ 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', # otherwise site with content '<HTML></HTML>' is returned
+ })
html = BeautifulSoup(response.text, 'html.parser')
# fill out login form (name='asmpform') with username=<phone number> and password
form = html.find(attrs={'name': 'asmpform'})
fields = {e['name']: e.get('value', '') for e in form.find_all('input', {'name': True}) if e['name'] != 'submit'}
assert 'loginMsisdn' in fields # user name
html = BeautifulSoup(response.text, 'html.parser')
# fill out login form (name='asmpform') with username=<phone number> and password
form = html.find(attrs={'name': 'asmpform'})
fields = {e['name']: e.get('value', '') for e in form.find_all('input', {'name': True}) if e['name'] != 'submit'}
assert 'loginMsisdn' in fields # user name
# reload overview page rechnung.bob.at - that makes the URLs in the page much prettier
# previously:
# https://rechnung.bob.at/bill/pdf/;BOBOBPSESSIONID=B7DB9938A3B9541E3D0EB6CD728F54C0.obpBobCustomer4Rechnungskopie_1509_523260091_1.pdf?bsn=61
# same after reload:
# '/bill/pdf/Rechnungskopie_1509_523260091_1.pdf?bsn=61'
# reload overview page rechnung.bob.at - that makes the URLs in the page much prettier
# previously:
# https://rechnung.bob.at/bill/pdf/;BOBOBPSESSIONID=B7DB9938A3B9541E3D0EB6CD728F54C0.obpBobCustomer4Rechnungskopie_1509_523260091_1.pdf?bsn=61
# same after reload:
# '/bill/pdf/Rechnungskopie_1509_523260091_1.pdf?bsn=61'
assert filename.startswith('Rechnungskopie_')
filepath = os.path.join(dest_dir, filename)
if not os.path.exists(filepath):
assert filename.startswith('Rechnungskopie_')
filepath = os.path.join(dest_dir, filename)
if not os.path.exists(filepath):
assert response.status_code == 200
with open(filepath, 'wb') as file:
file.write(response.content)
assert response.status_code == 200
with open(filepath, 'wb') as file:
file.write(response.content)
- assert response.text != ''
- import time
- time.sleep(3)
- response = session.get(main_url + 'bill.ctn.cdr.set.obp')
+ assert 'OBP.utils.reloadAfterDelay("/bill.ctn.cdr.set.obp",5);' in response.text
+ time.sleep(5) # OBP.utils.reloadAfterDelay("/bill.ctn.cdr.set.obp",5);
+ response = session.get(urljoin(response.url, 'bill.ctn.cdr.set.obp'))
+ assert 'OBP.utils.reloadAfterDelay("/bill.ctn.cdr.set.obp",5);' not in response.text
html = BeautifulSoup(response.text, 'html.parser')
assert html.find('a', id='link_csv_download') is not None
html = BeautifulSoup(response.text, 'html.parser')
assert html.find('a', id='link_csv_download') is not None
assert response.status_code == 200
filename = response.headers['Content-Disposition'].split('=')[1] # e.g. 'EVN_1509_523260091_1_069911934859.txt'
assert filename.startswith('EVN_')
assert response.status_code == 200
filename = response.headers['Content-Disposition'].split('=')[1] # e.g. 'EVN_1509_523260091_1_069911934859.txt'
assert filename.startswith('EVN_')