File size: 1,476 Bytes
33dd3ee
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
"""Tests for tool dispatch and make_relevance_key."""

import pytest

from tools.registry import dispatch, make_relevance_key


class TestMakeRelevanceKey:
    def test_tool_with_service(self):
        assert make_relevance_key("query_logs", {"service": "auth"}) == "query_logs:auth"

    def test_tool_with_service_and_metric(self):
        key = make_relevance_key("query_metrics", {"service": "pg", "metric": "cpu"})
        assert key == "query_metrics:pg:cpu"

    def test_tool_with_topic(self):
        key = make_relevance_key("consult_runbook", {"topic": "connection pool"})
        assert key == "consult_runbook:connection pool"

    def test_tool_no_params(self):
        assert make_relevance_key("check_recent_changes", {}) == "check_recent_changes"

    def test_tool_empty_service(self):
        assert make_relevance_key("get_dependency_map", {"service": ""}) == "get_dependency_map"


class TestDispatch:
    def test_unknown_tool(self, task1):
        output, is_valid = dispatch("hack_server", {}, task1)
        assert is_valid is False
        assert "Unknown tool" in output

    def test_valid_tool(self, task1):
        output, is_valid = dispatch("get_service_status", {"service": "payment-api"}, task1)
        assert is_valid is True
        assert output != ""

    def test_submit_resolution_passthrough(self, task1):
        output, is_valid = dispatch("submit_resolution", {}, task1)
        assert is_valid is True
        assert output == ""