#!/usr/bin/env python3 # This is run by the "run-tests" script. import unittest from test import TestHelper, Conn, parse class TestForward(TestHelper): def test_without_header(self): resp = self.get('/', req_hdrs={'Host': 'example.com'}) status, hdrs, body = parse(resp) self.assertContains(status, '200 OK') def test_https_redirect(self): resp = self.get('/foo/bar', req_hdrs={ 'Host': 'example.com', 'X-Forwarded-Proto': 'http', }) status, hdrs, body = parse(resp) self.assertContains(status, '301 Moved Permanently') expect = 'https://example.com/foo/bar' self.assertEqual(hdrs['Location'], expect) self.assertContains(body, expect) def test_no_redirect(self): resp = self.get('/', req_hdrs={ 'Host': 'example.com', 'X-Forwarded-Proto': 'https', # Already https. }) status, hdrs, body = parse(resp) self.assertContains(status, '200 OK') if __name__ == '__main__': unittest.main() # vim:set ts=4 sw=4 et: