Exemple #1
0
 def test_slow_post_request_code(self):
     # A slow post-request code shouldn't slow down the request
     start = time.time()
     response = get_from_spectre('/internal_error/dogslow')
     # /internal_error/dogslow sleeps for 10 seconds
     assert time.time() - start < 2
     assert response.status_code == 200
     assert response.text == 'OK'
def wait_for_casper():
    """ Wait for casper and cassandra to be ready.

    It takes a bit for casper and cassandra to be ready to serve requests,
    while the tests usually start immediately without waiting.
    """
    for i in range(30):
        response = get_from_spectre('/status')
        if response.status_code == 200:
            return
        else:
            time.sleep(1)
    else:
        raise RuntimeError("Spectre was not ready after 30 seconds")
 def test_can_get_casper_configs(self, wait_for_casper):
     response = get_from_spectre('/configs')
     assert response.status_code == 200
     status = json.loads(response.text)
     # status['service_configs'] is too long and changes too quickly
     # to be worth asserting its entire content
     assert 'long_ttl' in status['service_configs']['backend.main']['cached_endpoints']
     assert status['service_configs']['backend.main']['uncacheable_headers'] == ['Uncacheable-Header']
     assert status['service_configs']['backend.main']['vary_headers'] == ['Accept-Encoding']
     # status['smartstack_configs'] should only contain enabled services
     assert status['smartstack_configs'] == {
         u'backend.main': {u'host': u'10.5.0.3', u'port': 9080},
     }
     # services.yaml, backend.main.yaml and casper.internal.yaml
     assert len(status['mod_time_table']) == 3
     assert isinstance(status['worker_id'], int)
    def test_can_skip_cassandra_check(self):
        response = get_through_spectre('/status')
        assert response.status_code == 200
        assert response.text == 'Backend is alive\n'

        response = get_from_spectre('/status')
        assert response.status_code == 200
        status = json.loads(response.text)
        assert status['cassandra_status'] == 'skipped'
        assert status['smartstack_configs'] == 'present'
        assert status['spectre_configs'] == 'present'
        assert status['proxied_services'] == {
            'backend.main': {
                'host': '10.5.0.3',
                'port': 9080,
            },
        }
 def test_can_reach_nginx_status(self):
     response = get_from_spectre('/nginx-status')
     assert response.status_code == 200
     assert 'Active connections' in response.text
Exemple #6
0
 def test_crash_post_request_code(self):
     # A crash in the post-request code shouldn't affect the response
     response = get_from_spectre('/internal_error/crash')
     assert response.status_code == 200
     assert response.text == 'OK'