class SignatureTestCase(SimpleTestCase):
    def setUp(self):
        self.auth = SignatureAuthentication()

    def test_no_headers_in_signature_is_date(self):
        signature = build_signature([])
        headers = self.auth.get_headers_from_signature(signature)
        self.assertEqual(1, len(headers))
        self.assertEqual("date", headers[0])

    def test_date_in_signature(self):
        signature = build_signature(['date'])
        headers = self.auth.get_headers_from_signature(signature)
        self.assertTrue('date' in headers)

    def test_many_in_signature(self):
        signature = build_signature(['date', 'accept', '(request-target)'])
        headers = self.auth.get_headers_from_signature(signature)
        self.assertTrue('date' in headers)
        self.assertTrue('accept' in headers)
        self.assertTrue('(request-target)' in headers)

    def test_get_signature(self):
        signature_string = build_signature(['(request-target)', 'date'])
        signature = self.auth.get_signature_from_signature_string(
            signature_string)
        self.assertEqual(SIGNATURE, signature)

    def test_get_signature_without_headers(self):
        signature_string = build_signature([])
        signature = self.auth.get_signature_from_signature_string(
            signature_string)
        self.assertEqual(SIGNATURE, signature)
class SignatureTestCase(SimpleTestCase):

    def setUp(self):
        self.auth = SignatureAuthentication()

    def test_no_headers_in_signature_is_date(self):
        signature = build_signature([])
        headers = self.auth.get_headers_from_signature(signature)
        self.assertEqual(1, len(headers))
        self.assertEqual("date", headers[0])

    def test_date_in_signature(self):
        signature = build_signature(['date'])
        headers = self.auth.get_headers_from_signature(signature)
        self.assertTrue('date' in headers)

    def test_many_in_signature(self):
        signature = build_signature(['date', 'accept', '(request-target)'])
        headers = self.auth.get_headers_from_signature(signature)
        self.assertTrue('date' in headers)
        self.assertTrue('accept' in headers)
        self.assertTrue('(request-target)' in headers)

    def test_get_signature(self):
        signature_string = build_signature(['(request-target)', 'date'])
        signature = self.auth.get_signature_from_signature_string(
            signature_string)
        self.assertEqual(SIGNATURE, signature)

    def test_get_signature_without_headers(self):
        signature_string = build_signature([])
        signature = self.auth.get_signature_from_signature_string(
            signature_string)
        self.assertEqual(SIGNATURE, signature)
class SignatureTestCase(SimpleTestCase):

    def setUp(self):
        self.auth = SignatureAuthentication()

    def test_no_headers_in_signature(self):
        signature = build_signature([])
        self.assertRaises(AuthenticationFailed,
                          self.auth.get_headers_from_signature, signature)

    def test_date_in_signature(self):
        signature = build_signature(['date'])
        headers = self.auth.get_headers_from_signature(signature)
        self.assertTrue('date' in headers)

    def test_many_in_signature(self):
        signature = build_signature(['date', 'accept', 'request-line'])
        headers = self.auth.get_headers_from_signature(signature)
        self.assertTrue('date' in headers)
        self.assertTrue('accept' in headers)
        self.assertTrue('request-line' in headers)

    def test_get_signature(self):
        signature_string = build_signature(['request-line', 'date'])
        signature = self.auth.get_signature_from_signature_string(
            signature_string)
        self.assertEqual(SIGNATURE, signature)

    def test_get_signature_without_headers(self):
        signature_string = build_signature([])
        signature = self.auth.get_signature_from_signature_string(
            signature_string)
        self.assertEqual(SIGNATURE, signature)