Exemplo n.º 1
0
 def _find_substitution(self, query):
     max_distance = min(3, len(query) / 4)
     scenarios = scenario_base.Scenario.list_benchmark_scenarios()
     scenario_groups = list(set(s.split(".")[0] for s in scenarios))
     scenario_methods = list(set(s.split(".")[1] for s in scenarios))
     deploy_engines = [cls.__name__ for cls in utils.itersubclasses(
                       deploy.EngineFactory)]
     server_providers = [cls.__name__ for cls in utils.itersubclasses(
                         serverprovider.ProviderFactory)]
     candidates = (scenarios + scenario_groups + scenario_methods +
                   deploy_engines + server_providers)
     suggestions = []
     # NOTE(msdubov): Incorrect query may either have typos or be truncated.
     for candidate in candidates:
         if ((utils.distance(query, candidate) <= max_distance or
              candidate.startswith(query))):
             suggestions.append(candidate)
     return suggestions
Exemplo n.º 2
0
 def test_distance_deletion(self):
     dist = utils.distance("abcde", "abc")
     self.assertEqual(2, dist)
Exemplo n.º 3
0
 def test_distance_insertion(self):
     dist = utils.distance("abcde", "ab__cde")
     self.assertEqual(2, dist)
Exemplo n.º 4
0
 def test_distance_replacement(self):
     dist = utils.distance("abcde", "__cde")
     self.assertEqual(2, dist)
Exemplo n.º 5
0
 def test_distance_equal_strings(self):
     dist = utils.distance("abcde", "abcde")
     self.assertEqual(0, dist)
Exemplo n.º 6
0
 def test_distance_empty_strings(self):
     dist = utils.distance("", "")
     self.assertEqual(0, dist)
Exemplo n.º 7
0
 def test_distance_deletion(self):
     dist = utils.distance("abcde", "abc")
     self.assertEqual(2, dist)
Exemplo n.º 8
0
 def test_distance_insertion(self):
     dist = utils.distance("abcde", "ab__cde")
     self.assertEqual(2, dist)
Exemplo n.º 9
0
 def test_distance_replacement(self):
     dist = utils.distance("abcde", "__cde")
     self.assertEqual(2, dist)
Exemplo n.º 10
0
 def test_distance_equal_strings(self):
     dist = utils.distance("abcde", "abcde")
     self.assertEqual(0, dist)
Exemplo n.º 11
0
 def test_distance_empty_strings(self):
     dist = utils.distance("", "")
     self.assertEqual(0, dist)