示例#1
0
def test_helper_types():
    binding_helper.unregister_all()
    BindingHelper.register(UncachedHelper())
    BindingHelper.register(CachedHelper())

    uncached_helper = binding_helper._BINDING_HELPERS[0]
    cached_helper = binding_helper._BINDING_HELPERS[1]

    def smoke_test():
        cfg = write_and_load_config(role='john_doe')
        binding_helper.apply_all(cfg)
        assert cfg.task(
            0).processes()[0].cmdline().get() == 'U(hello) C(hello)'
        assert cfg.task(
            0).processes()[1].cmdline().get() == 'U(hello) C(hello)'

    # initially everything uncached (also -- multiple symbols result in a single bind)
    smoke_test()
    assert uncached_helper.binds == 1
    assert cached_helper.binds == 1
    assert cached_helper.uncached_binds == 1

    # cached helper is warm, should no longer have uncached binds
    smoke_test()
    assert uncached_helper.binds == 2
    assert cached_helper.binds == 2
    assert cached_helper.uncached_binds == 1

    # flush cache and validate miss
    binding_helper.clear_binding_caches()
    smoke_test()
    assert uncached_helper.binds == 3
    assert cached_helper.binds == 3
    assert cached_helper.uncached_binds == 2
示例#2
0
def test_helper_types():
  binding_helper.unregister_all()
  BindingHelper.register(UncachedHelper())
  BindingHelper.register(CachedHelper())

  uncached_helper = binding_helper._BINDING_HELPERS[0]
  cached_helper = binding_helper._BINDING_HELPERS[1]

  def smoke_test():
    cfg = write_and_load_config(role='john_doe')
    binding_helper.apply_all(cfg)
    assert cfg.task(0).processes()[0].cmdline().get() == 'U(hello) C(hello)'
    assert cfg.task(0).processes()[1].cmdline().get() == 'U(hello) C(hello)'

  # initially everything uncached (also -- multiple symbols result in a single bind)
  smoke_test()
  assert uncached_helper.binds == 1
  assert cached_helper.binds == 1
  assert cached_helper.uncached_binds == 1

  # cached helper is warm, should no longer have uncached binds
  smoke_test()
  assert uncached_helper.binds == 2
  assert cached_helper.binds == 2
  assert cached_helper.uncached_binds == 1

  # flush cache and validate miss
  binding_helper.clear_binding_caches()
  smoke_test()
  assert uncached_helper.binds == 3
  assert cached_helper.binds == 3
  assert cached_helper.uncached_binds == 2
示例#3
0
  def before_execution(self, context):
    # register usable backends
    sacker_ledger.register_ledger('s3', S3Ledger)
    sacker_ledger.register_ledger('dynamo', DynamoLedger)
    sacker_store.register_store('s3', S3Store)

    # register schema
    AuroraConfigLoader.register_schema(sacker_schema)

    # register binding helper
    BindingHelper.register(SackerBindingHelper())
示例#4
0
def test_registry():
  binding_helper.unregister_all()
  assert len(binding_helper._BINDING_HELPERS) == 0

  BindingHelper.register(UncachedHelper())
  assert len(binding_helper._BINDING_HELPERS) == 1

  BindingHelper.register(CachedHelper())
  assert len(binding_helper._BINDING_HELPERS) == 2

  binding_helper.unregister_all()
  assert len(binding_helper._BINDING_HELPERS) == 0
示例#5
0
def test_registry():
    binding_helper.unregister_all()
    assert len(binding_helper._BINDING_HELPERS) == 0

    BindingHelper.register(UncachedHelper())
    assert len(binding_helper._BINDING_HELPERS) == 1

    BindingHelper.register(CachedHelper())
    assert len(binding_helper._BINDING_HELPERS) == 2

    binding_helper.unregister_all()
    assert len(binding_helper._BINDING_HELPERS) == 0
示例#6
0
  def test_docker_binding_throws(self, mock_resolve):
    mock_resolve.side_effect = Exception('mock resolve failure')

    binding_helper.unregister_all()
    BindingHelper.register(DockerBindingHelper())

    with temporary_file() as fp:
      fp.write(DOCKER_BINDING_CONFIG)
      fp.flush()
      with CLUSTERS.patch(TEST_CLUSTERS):
        cfg = AuroraConfig.load(fp.name)
        with pytest.raises(Exception):
          binding_helper.apply_all(cfg)
          assert mock_resolve.mock_calls == [call(TEST_CLUSTER, 'some/name', 'some.tag')]
示例#7
0
  def test_docker_binding(self, mock_resolve):
    image_reference = 'registry.example.com/some/repo@some:digest'

    mock_resolve.return_value = image_reference

    binding_helper.unregister_all()
    BindingHelper.register(DockerBindingHelper())

    with temporary_file() as fp:
      fp.write(DOCKER_BINDING_CONFIG)
      fp.flush()
      with CLUSTERS.patch(TEST_CLUSTERS):
        cfg = AuroraConfig.load(fp.name)
        binding_helper.apply_all(cfg)
        assert cfg.job().taskConfig.container.docker.image == image_reference
        assert mock_resolve.mock_calls == [call(TEST_CLUSTER, 'some/name', 'some.tag')]
    def test_docker_binding_throws(self, mock_resolve):
        mock_resolve.side_effect = Exception('mock resolve failure')

        binding_helper.unregister_all()
        BindingHelper.register(DockerBindingHelper())

        with temporary_file() as fp:
            fp.write(DOCKER_BINDING_CONFIG)
            fp.flush()
            with CLUSTERS.patch(TEST_CLUSTERS):
                cfg = AuroraConfig.load(fp.name)
                with pytest.raises(Exception):
                    binding_helper.apply_all(cfg)
                    assert mock_resolve.mock_calls == [
                        call(TEST_CLUSTER, 'some/name', 'some.tag')
                    ]
    def test_docker_binding(self, mock_resolve):
        image_reference = 'registry.example.com/some/repo@some:digest'

        mock_resolve.return_value = image_reference

        binding_helper.unregister_all()
        BindingHelper.register(DockerBindingHelper())

        with temporary_file() as fp:
            fp.write(DOCKER_BINDING_CONFIG)
            fp.flush()
            with CLUSTERS.patch(TEST_CLUSTERS):
                cfg = AuroraConfig.load(fp.name)
                binding_helper.apply_all(cfg)
                assert cfg.job(
                ).taskConfig.container.docker.image == image_reference
                assert mock_resolve.mock_calls == [
                    call(TEST_CLUSTER, 'some/name', 'some.tag')
                ]
示例#10
0
文件: client.py 项目: zmyer/aurora
 def before_execution(self, context):
   BindingHelper.register(DockerBindingHelper())