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!
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

108 行
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