Example #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
Example #2
0
 def test_distance_deletion(self):
     dist = utils.distance("abcde", "abc")
     self.assertEqual(2, dist)
Example #3
0
 def test_distance_insertion(self):
     dist = utils.distance("abcde", "ab__cde")
     self.assertEqual(2, dist)
Example #4
0
 def test_distance_replacement(self):
     dist = utils.distance("abcde", "__cde")
     self.assertEqual(2, dist)
Example #5
0
 def test_distance_equal_strings(self):
     dist = utils.distance("abcde", "abcde")
     self.assertEqual(0, dist)
Example #6
0
 def test_distance_empty_strings(self):
     dist = utils.distance("", "")
     self.assertEqual(0, dist)
Example #7
0
 def test_distance_deletion(self):
     dist = utils.distance("abcde", "abc")
     self.assertEqual(2, dist)
Example #8
0
 def test_distance_insertion(self):
     dist = utils.distance("abcde", "ab__cde")
     self.assertEqual(2, dist)
Example #9
0
 def test_distance_replacement(self):
     dist = utils.distance("abcde", "__cde")
     self.assertEqual(2, dist)
Example #10
0
 def test_distance_equal_strings(self):
     dist = utils.distance("abcde", "abcde")
     self.assertEqual(0, dist)
Example #11
0
 def test_distance_empty_strings(self):
     dist = utils.distance("", "")
     self.assertEqual(0, dist)