1234567891011121314151617181920212223242526 |
- # pylint: disable=missing-docstring
- import unittest.mock
- import pytest
- import pyftpd_sink
- @pytest.mark.parametrize(('env', 'argv', 'expected_umask'), [
- ({}, [], None),
- ({}, ['--umask', str(0o0027)], 0o0027),
- ({}, ['--umask', str(0o0177)], 0o0177),
- ({}, ['--umask', '23'], 0o0027),
- ({}, ['--umask', '127'], 0o0177),
- ({'UMASK': str(0o0022)}, [], 0o0022),
- ({'UMASK': str(0o0022)}, ['--umask', str(0o0027)], 0o0027),
- ])
- def test_main_umask(env, argv, expected_umask):
- with unittest.mock.patch('pyftpd_sink.serve') as serve_mock:
- with unittest.mock.patch('sys.argv', ['', '--user', 'u', '--pwd-hash', 'p'] + argv):
- with unittest.mock.patch('os.environ', env):
- pyftpd_sink.main()
- serve_mock.assert_called_once()
- serve_kwargs = serve_mock.call_args[1]
- assert expected_umask == serve_kwargs['umask']
|