Merge branch '8784-dir-listings'
[arvados.git] / sdk / pam / tests / test_pam_sm.py
1 # Copyright (C) The Arvados Authors. All rights reserved.
2 #
3 # SPDX-License-Identifier: Apache-2.0
4
5 import arvados_pam
6 import mock
7 from . import mocker
8
9 class PamSMTest(mocker.Mocker):
10     def attempt(self):
11         return arvados_pam.pam_sm_authenticate(self.pamh, 0, self.argv)
12
13     def test_success(self):
14         self.assertEqual(self.pamh.PAM_SUCCESS, self.attempt())
15
16     def test_bad_user(self):
17         self.pamh.get_user = mock.MagicMock(return_value='badusername')
18         self.assertEqual(self.pamh.PAM_AUTH_ERR, self.attempt())
19
20     def test_bad_vm(self):
21         self.argv[2] = 'testvm22.shell'
22         self.assertEqual(self.pamh.PAM_AUTH_ERR, self.attempt())
23
24     def setUp(self):
25         super(PamSMTest, self).setUp()
26         self.pamh = mock.MagicMock()
27         self.pamh.get_user = mock.MagicMock(return_value='active')
28         self.pamh.PAM_SUCCESS = 12345
29         self.pamh.PAM_AUTH_ERR = 54321
30         self.argv = [__file__, 'zzzzz.arvadosapi.com', 'testvm2.shell']