| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 import ast | 6 import ast |
| 7 import datetime | 7 import datetime |
| 8 import hashlib | 8 import hashlib |
| 9 import hmac | 9 import hmac |
| 10 import json | 10 import json |
| (...skipping 510 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 521 _, html_content, _ = template.genMessageContent(self.build_data) | 521 _, html_content, _ = template.genMessageContent(self.build_data) |
| 522 | 522 |
| 523 with open(os.path.join(self.test_dir, 'expected.html')) as f: | 523 with open(os.path.join(self.test_dir, 'expected.html')) as f: |
| 524 expected_html = ' '.join(f.read().splitlines()) | 524 expected_html = ' '.join(f.read().splitlines()) |
| 525 | 525 |
| 526 saw = str(BeautifulSoup(html_content)).split() | 526 saw = str(BeautifulSoup(html_content)).split() |
| 527 expected = str(BeautifulSoup(expected_html)).split() | 527 expected = str(BeautifulSoup(expected_html)).split() |
| 528 | 528 |
| 529 self.assertEqual(saw, expected) | 529 self.assertEqual(saw, expected) |
| 530 | 530 |
| 531 def test_html_format_status(self): |
| 532 import gatekeeper_mailer |
| 533 status_header = ('Perf alert for "%(steps)s" on "%(builder_name)s"') |
| 534 template = gatekeeper_mailer.MailTemplate(self.build_data['waterfall_url'], |
| 535 self.build_data['build_url'], |
| 536 self.build_data['project_name'], |
| 537 'test@chromium.org', |
| 538 status_header=status_header) |
| 539 |
| 540 _, html_content, _ = template.genMessageContent(self.build_data) |
| 541 |
| 542 with open(os.path.join(self.test_dir, 'expected_status.html')) as f: |
| 543 expected_html = ' '.join(f.read().splitlines()) |
| 544 |
| 545 saw = str(BeautifulSoup(html_content)).split() |
| 546 expected = str(BeautifulSoup(expected_html)).split() |
| 547 |
| 548 self.assertEqual(saw, expected) |
| 549 |
| 531 def test_hmac_validation(self): | 550 def test_hmac_validation(self): |
| 532 from mailer import Email | 551 from mailer import Email |
| 533 message = self.input_json['message'] | 552 message = self.input_json['message'] |
| 534 url = 'http://invalid.chromium.org' | 553 url = 'http://invalid.chromium.org' |
| 535 secret = 'pajamas' | 554 secret = 'pajamas' |
| 536 | 555 |
| 537 test_json = self._hash_message(time.time(), message, url, secret) | 556 test_json = self._hash_message(time.time(), message, url, secret) |
| 538 # pylint: disable=W0212 | 557 # pylint: disable=W0212 |
| 539 self.assertTrue(Email._validate_message(test_json, url, secret)) | 558 self.assertTrue(Email._validate_message(test_json, url, secret)) |
| 540 | 559 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 551 ] | 570 ] |
| 552 | 571 |
| 553 for test_json in tests: | 572 for test_json in tests: |
| 554 # pylint: disable=W0212 | 573 # pylint: disable=W0212 |
| 555 self.assertFalse(Email._validate_message(test_json, url, secret)) | 574 self.assertFalse(Email._validate_message(test_json, url, secret)) |
| 556 | 575 |
| 557 test_json = self._hash_message(time.time(), message, url, secret) | 576 test_json = self._hash_message(time.time(), message, url, secret) |
| 558 test_json['message'] = test_json['message'] + 'hey' | 577 test_json['message'] = test_json['message'] + 'hey' |
| 559 # pylint: disable=W0212 | 578 # pylint: disable=W0212 |
| 560 self.assertFalse(Email._validate_message(test_json, url, secret)) | 579 self.assertFalse(Email._validate_message(test_json, url, secret)) |
| OLD | NEW |