Beispiel #1
0
    def test_change_password(self):
        client = AsyncfluxClient()
        db_name = 'foo'
        db = client[db_name]
        username = '******'
        password = '******'
        user = User(db, username)

        with self.patch_fetch_mock(client) as m:
            self.setup_fetch_mock(m, 200)
            response = yield user.change_password(password)
            self.assertIsNone(response)

            self.assert_mock_args(m, '/db/%s/users/%s' % (db_name, username),
                                  method='POST',
                                  body=json.dumps({'password': password}))

        # Non-existing user
        response_body = 'Invalid username %s' % username
        with self.patch_fetch_mock(client) as m:
            self.setup_fetch_mock(m, 400, body=response_body)
            with self.assertRaisesRegexp(AsyncfluxError, response_body):
                yield user.change_password(password)

            self.assert_mock_args(m, '/db/%s/users/%s' % (db_name, username),
                                  method='POST',
                                  body=json.dumps({'password': password}))

        # Invalid password
        password = '******'
        response_body = ('Password must be more than 4 and less than 56 '
                         'characters')
        with self.patch_fetch_mock(client) as m:
            self.setup_fetch_mock(m, 400, body=response_body)
            with self.assertRaisesRegexp(AsyncfluxError, response_body):
                yield user.change_password(password)

            self.assert_mock_args(m, '/db/%s/users/%s' % (db_name, username),
                                  method='POST',
                                  body=json.dumps({'password': password}))