IF YOU WOULD LIKE TO GET AN ACCOUNT, please write an email to s dot adaszewski at gmail dot com. User accounts are meant only to report issues and/or generate pull requests. This is a purpose-specific Git hosting for ADARED projects. Thank you for your understanding!
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

108 Zeilen
3.9KB

  1. from focker.focker import *
  2. def test_parser_bootstrap():
  3. parser = create_parser()
  4. args = parser.parse_args(['bootstrap', '--dry-run', '--tags', 'a', 'b', 'c'])
  5. assert args.func == command_bootstrap
  6. assert args.tags == ['a', 'b', 'c']
  7. assert args.dry_run
  8. def test_parser_image():
  9. parser = create_parser()
  10. args = parser.parse_args(['image', 'build', '.', '--squeeze', '--tags', 'a', 'b', 'c'])
  11. assert args.func == command_image_build
  12. assert args.focker_dir == '.'
  13. assert args.tags == ['a', 'b', 'c']
  14. assert args.squeeze
  15. args = parser.parse_args(['image', 'tag', 'deadbee', 'a', 'b', 'c'])
  16. assert args.func == command_image_tag
  17. assert args.reference == 'deadbee'
  18. assert args.tags == ['a', 'b', 'c']
  19. args = parser.parse_args(['image', 'untag', 'a', 'b', 'c'])
  20. assert args.func == command_image_untag
  21. assert args.tags == ['a', 'b', 'c']
  22. args = parser.parse_args(['image', 'list', '--full-sha256', '--tagged-only'])
  23. assert args.func == command_image_list
  24. assert args.full_sha256
  25. assert args.tagged_only
  26. args = parser.parse_args(['image', 'prune'])
  27. assert args.func == command_image_prune
  28. args = parser.parse_args(['image', 'remove', 'a', '--remove-dependents', '--force'])
  29. assert args.func == command_image_remove
  30. assert args.reference == 'a'
  31. assert args.remove_dependents
  32. assert args.force
  33. def test_parser_jail(monkeypatch):
  34. parser = create_parser()
  35. counter = [0]
  36. def count_calls(fun, counter):
  37. def inner(*args, **kwargs):
  38. counter[0] += 1
  39. return fun(*args, **kwargs)
  40. return inner
  41. monkeypatch.setattr(parser, 'parse_args', count_calls(parser.parse_args, counter))
  42. args = parser.parse_args(['jail', 'create', 'freebsd-latest', '--command', '/test-command', '--tags', 'a', 'b', 'c', '--env', 'd:1', 'e:2', '--mounts', 'mount-A:/a', 'mount-B:/b', '--hostname', 'xyz'])
  43. assert args.func == command_jail_create
  44. assert args.command == '/test-command'
  45. assert args.tags == ['a', 'b', 'c']
  46. assert args.env == ['d:1', 'e:2']
  47. assert args.mounts == ['mount-A:/a', 'mount-B:/b']
  48. assert args.hostname == 'xyz'
  49. args = parser.parse_args(['jail', 'start', 'jail-A'])
  50. assert args.func == command_jail_start
  51. assert args.reference == 'jail-A'
  52. args = parser.parse_args(['jail', 'stop', 'jail-A'])
  53. assert args.func == command_jail_stop
  54. assert args.reference == 'jail-A'
  55. args = parser.parse_args(['jail', 'remove', 'jail-A', '--force'])
  56. assert args.func == command_jail_remove
  57. assert args.reference == 'jail-A'
  58. assert args.force
  59. args = parser.parse_args(['jail', 'exec', 'jail-A', '/bin/sh', '-c', 'ls', '-al'])
  60. assert args.func == command_jail_exec
  61. assert args.reference == 'jail-A'
  62. assert args.command == ['/bin/sh', '-c', 'ls', '-al']
  63. args = parser.parse_args(['jail', 'oneshot', '--env', 'd:1', 'e:2', '--mounts', 'mount-A:/a', 'mount-B:/b', '--', 'image-A', '/bin/sh', '-c', 'ls', '-al'])
  64. assert args.func == command_jail_oneshot
  65. assert args.image == 'image-A'
  66. assert args.env == ['d:1', 'e:2']
  67. assert args.mounts == ['mount-A:/a', 'mount-B:/b']
  68. assert args.command == ['/bin/sh', '-c', 'ls', '-al']
  69. args = parser.parse_args(['jail', 'list', '--full-sha256'])
  70. assert args.func == command_jail_list
  71. assert args.full_sha256
  72. args = parser.parse_args(['jail', 'tag', 'deadbee', 'a', 'b', 'c'])
  73. assert args.func == command_jail_tag
  74. assert args.reference == 'deadbee'
  75. assert args.tags == ['a', 'b', 'c']
  76. args = parser.parse_args(['jail', 'untag', 'a', 'b', 'c'])
  77. assert args.func == command_jail_untag
  78. assert args.tags == ['a', 'b', 'c']
  79. args = parser.parse_args(['jail', 'prune', '--force'])
  80. assert args.func == command_jail_prune
  81. assert args.force
  82. assert counter[0] == 10