test_cli.py 977 B

123456789101112131415161718192021222324252627282930313233
  1. # -*- coding:utf-8 -*-
  2. from unittest.mock import MagicMock, patch
  3. import pytest
  4. from dw_base.datax import cli
  5. @patch('dw_base.datax.cli.JobConfigGenerator')
  6. def test_gen_json_invokes_generator(MockGen):
  7. mock_inst = MagicMock()
  8. MockGen.return_value = mock_inst
  9. cli.main(['gen-json', 'some.ini',
  10. '-start-date', '20260422',
  11. '-stop-date', '20260423'])
  12. MockGen.assert_called_once()
  13. call_args = MockGen.call_args[0]
  14. # 位置参数:(base_dir, ini, start, stop, output)
  15. assert call_args[1] == 'some.ini'
  16. assert call_args[2] == '20260422'
  17. assert call_args[3] == '20260423'
  18. assert call_args[4].endswith('some.json')
  19. mock_inst.run.assert_called_once()
  20. def test_gen_json_missing_args_exits():
  21. with pytest.raises(SystemExit):
  22. cli.main(['gen-json', 'some.ini']) # 缺 -start-date/-stop-date
  23. def test_unknown_subcommand_exits():
  24. with pytest.raises(SystemExit):
  25. cli.main(['bogus-cmd'])