test_netmiko_scp.py 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. #!/usr/bin/env python
  2. from __future__ import print_function
  3. from __future__ import unicode_literals
  4. import time
  5. import sys
  6. import os
  7. from datetime import datetime
  8. from getpass import getpass
  9. from netmiko import ConnectHandler, FileTransfer
  10. def test_enable_scp(scp_fixture):
  11. ssh_conn, scp_transfer = scp_fixture
  12. scp_transfer.disable_scp()
  13. output = ssh_conn.send_command_expect("show run | inc scp")
  14. assert 'ip scp server enable' not in output
  15. scp_transfer.enable_scp()
  16. output = ssh_conn.send_command_expect("show run | inc scp")
  17. assert 'ip scp server enable' in output
  18. def test_scp_put(scp_fixture):
  19. ssh_conn, scp_transfer = scp_fixture
  20. if scp_transfer.check_file_exists():
  21. assert False
  22. else:
  23. scp_transfer.put_file()
  24. assert scp_transfer.check_file_exists() == True
  25. def test_remote_space_available(scp_fixture):
  26. ssh_conn, scp_transfer = scp_fixture
  27. remote_space = scp_transfer.remote_space_available()
  28. assert remote_space >= 30000000
  29. def test_local_space_available(scp_fixture):
  30. ssh_conn, scp_transfer = scp_fixture
  31. local_space = scp_transfer.local_space_available()
  32. assert local_space >= 1000000000
  33. def test_verify_space_available_put(scp_fixture):
  34. ssh_conn, scp_transfer = scp_fixture
  35. assert scp_transfer.verify_space_available() == True
  36. # intentional make there not be enough space available
  37. scp_transfer.file_size = 1000000000
  38. assert scp_transfer.verify_space_available() == False
  39. def test_verify_space_available_get(scp_fixture_get):
  40. ssh_conn, scp_transfer = scp_fixture_get
  41. assert scp_transfer.verify_space_available() == True
  42. # intentional make there not be enough space available
  43. scp_transfer.file_size = 100000000000
  44. assert scp_transfer.verify_space_available() == False
  45. def test_remote_file_size(scp_fixture):
  46. ssh_conn, scp_transfer = scp_fixture
  47. remote_file_size = scp_transfer.remote_file_size()
  48. assert remote_file_size == 19
  49. def test_md5_methods(scp_fixture):
  50. ssh_conn, scp_transfer = scp_fixture
  51. md5_value = 'd8df36973ff832b564ad84642d07a261'
  52. remote_md5 = scp_transfer.remote_md5()
  53. assert remote_md5 == md5_value
  54. assert scp_transfer.compare_md5() == True
  55. def test_scp_get(scp_fixture_get):
  56. ssh_conn, scp_transfer = scp_fixture_get
  57. if scp_transfer.check_file_exists():
  58. # File should not already exist
  59. assert False
  60. else:
  61. scp_transfer.get_file()
  62. if scp_transfer.check_file_exists():
  63. assert True == True
  64. else:
  65. assert False == True
  66. def test_md5_methods_get(scp_fixture_get):
  67. ssh_conn, scp_transfer = scp_fixture_get
  68. md5_value = 'd8df36973ff832b564ad84642d07a261'
  69. local_md5 = scp_transfer.file_md5("test9.txt")
  70. assert local_md5 == md5_value
  71. assert scp_transfer.compare_md5() == True
  72. def test_disconnect(scp_fixture):
  73. """Terminate the SSH session."""
  74. ssh_conn, scp_transfer = scp_fixture
  75. ssh_conn.disconnect()
  76. def test_disconnect_get(scp_fixture_get):
  77. """Terminate the SSH session."""
  78. ssh_conn, scp_transfer = scp_fixture_get
  79. ssh_conn.disconnect()