| OLD | NEW |
| (Empty) |
| 1 # Copyright (c) 2001-2005 Twisted Matrix Laboratories. | |
| 2 # See LICENSE for details. | |
| 3 | |
| 4 from twisted.cred import credentials, error | |
| 5 from twisted.words import tap | |
| 6 from twisted.trial import unittest | |
| 7 | |
| 8 | |
| 9 | |
| 10 class WordsTap(unittest.TestCase): | |
| 11 """ | |
| 12 Ensures that the twisted.words.tap API works. | |
| 13 """ | |
| 14 | |
| 15 PASSWD_TEXT = "admin:admin\njoe:foo\n" | |
| 16 admin = credentials.UsernamePassword('admin', 'admin') | |
| 17 joeWrong = credentials.UsernamePassword('joe', 'bar') | |
| 18 | |
| 19 | |
| 20 def setUp(self): | |
| 21 """ | |
| 22 Create a file with two users. | |
| 23 """ | |
| 24 self.filename = self.mktemp() | |
| 25 self.file = open(self.filename, 'w') | |
| 26 self.file.write(self.PASSWD_TEXT) | |
| 27 self.file.flush() | |
| 28 | |
| 29 | |
| 30 def tearDown(self): | |
| 31 """ | |
| 32 Close the dummy user database. | |
| 33 """ | |
| 34 self.file.close() | |
| 35 | |
| 36 | |
| 37 def test_hostname(self): | |
| 38 """ | |
| 39 Tests that the --hostname parameter gets passed to Options. | |
| 40 """ | |
| 41 opt = tap.Options() | |
| 42 opt.parseOptions(['--hostname', 'myhost']) | |
| 43 self.assertEquals(opt['hostname'], 'myhost') | |
| 44 | |
| 45 | |
| 46 def test_passwd(self): | |
| 47 """ | |
| 48 Tests the --passwd command for backwards-compatibility. | |
| 49 """ | |
| 50 opt = tap.Options() | |
| 51 opt.parseOptions(['--passwd', self.file.name]) | |
| 52 self._loginTest(opt) | |
| 53 | |
| 54 | |
| 55 def test_auth(self): | |
| 56 """ | |
| 57 Tests that the --auth command generates a checker. | |
| 58 """ | |
| 59 opt = tap.Options() | |
| 60 opt.parseOptions(['--auth', 'file:'+self.file.name]) | |
| 61 self._loginTest(opt) | |
| 62 | |
| 63 | |
| 64 def _loginTest(self, opt): | |
| 65 """ | |
| 66 This method executes both positive and negative authentication | |
| 67 tests against whatever credentials checker has been stored in | |
| 68 the Options class. | |
| 69 | |
| 70 @param opt: An instance of L{tap.Options}. | |
| 71 """ | |
| 72 self.assertEquals(len(opt['credCheckers']), 1) | |
| 73 checker = opt['credCheckers'][0] | |
| 74 self.assertFailure(checker.requestAvatarId(self.joeWrong), | |
| 75 error.UnauthorizedLogin) | |
| 76 def _gotAvatar(username): | |
| 77 self.assertEquals(username, self.admin.username) | |
| 78 return checker.requestAvatarId(self.admin).addCallback(_gotAvatar) | |
| OLD | NEW |