test_DDoS.py 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import unittest
  2. import unittest.mock as mock
  3. from ID2TLib.Statistics import Statistics
  4. from Test.GenericTest import GenericTest
  5. from Test.Lib import get_win_size, get_attacker_config
  6. sha_basic_ddos = 'f05ce7842014fd90098c06b97f1b6276d93beed3ce5906e2d4281096e383fe0a'
  7. sha_num_attackers_ddos = 'cba7151113fe1c91a52f062cef477c8650fc6e9507698b8981ba790921984d57'
  8. # FIXME: get hash for currently broken test
  9. sha_dest_mac_length_zero_ddos = ''
  10. sha_mss_none_ddos = 'f05ce7842014fd90098c06b97f1b6276d93beed3ce5906e2d4281096e383fe0a'
  11. """
  12. Name Stmts Miss Cover Missing
  13. --------------------------------------------------------------------------------------------
  14. Attack/DDoSAttack.py 124 7 94% 70, 105-106, 120, 123, 141, 187
  15. """
  16. class UnitTestDDoS(GenericTest):
  17. @mock.patch.object(Statistics, 'get_rnd_win_size', side_effect=get_win_size)
  18. @mock.patch('ID2TLib.Utility.get_attacker_config', side_effect=get_attacker_config)
  19. def test_basic(self, mock_get_attacker_config, mock_get_rnd_win_size):
  20. self.generic_test([['DDoSAttack']],
  21. sha_basic_ddos)
  22. @mock.patch.object(Statistics, 'get_rnd_win_size', side_effect=get_win_size)
  23. @mock.patch('ID2TLib.Utility.get_attacker_config', side_effect=get_attacker_config)
  24. def test_num_attackers(self, mock_get_attacker_config, mock_get_rnd_win_size):
  25. self.generic_test([['DDoSAttack', 'attackers.count=5']],
  26. sha_num_attackers_ddos)
  27. # FIXME: currently returns 'ERROR: 'NoneType' object has no attribute 'route'
  28. #@mock.patch.object(Statistics, 'get_rnd_win_size', side_effect=get_win_size)
  29. #@mock.patch('ID2TLib.Utility.get_attacker_config', side_effect=get_attacker_config)
  30. #@mock.patch('ID2TLib.Statistics.Statistics.get_mac_address', return_value='')
  31. #def test_dest_mac_length_zero(self, mock_dest_mac, mock_get_attacker_config, mock_get_rnd_win_size):
  32. # self.generic_test([['DDoSAttack']], sha_dest_mac_length_zero_ddos)
  33. @mock.patch.object(Statistics, 'get_rnd_win_size', side_effect=get_win_size)
  34. @mock.patch('ID2TLib.Utility.get_attacker_config', side_effect=get_attacker_config)
  35. @mock.patch('ID2TLib.Statistics.Statistics.get_most_used_mss', return_value=None)
  36. def test_mss_none(self, mock_mss, mock_get_attacker_config, mock_get_rnd_win_size):
  37. self.generic_test([['DDoSAttack']], sha_mss_none_ddos)
  38. if __name__ == '__main__':
  39. unittest.main()