blob: feb06752c29a8d5bc32d589e0e09bd503137d3e7 [file] [log] [blame]
#!/usr/bin/env python
# Copyright (c) 2011 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Unit tests for verification/authors_white_list.py."""
import os
import sys
import unittest
ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, os.path.join(ROOT_DIR, '..'))
from verification import base
from verification import authors_white_list
# From tests/
import mocks
class AuthorTest(mocks.TestCase):
def test_rejected(self):
self.pending.owner = 'georges@micro.com'
self._check(
'Can\'t commit because the owner %s not in whitelist' %
self.pending.owner)
def test_allowed(self):
self.pending.owner = 'georges@example.com'
self._check(None)
def _check(self, error_message):
ver = authors_white_list.AuthorVerifier([r'^[\-\w]+\@example\.com$'])
ver.verify(self.pending)
ver.update_status([self.pending])
name = authors_white_list.AuthorVerifier.name
self.assertEqual(self.pending.verifications.keys(), [name])
self.assertEqual(
self.pending.verifications[name].error_message, error_message)
if error_message:
self.assertEqual(
self.pending.verifications[name].get_state(), base.FAILED)
else:
self.assertEqual(
self.pending.verifications[name].get_state(), base.SUCCEEDED)
if __name__ == '__main__':
unittest.main()