Ejemplo n.º 1
0
    def setup(self, id, folders):
        def callback(filename):
            self.add(id, filename)

        self.init(id)
        if self.running_thread != None:
            self.running_thread.stop()

        self.running_thread = Runner(settings, folders, 30, callback)
        self.running_thread.start()
Ejemplo n.º 2
0
    def update_all(self, filename):
        def callback(filename):
            for id in self.dictionaries.keys():
                self.update(id, filename)

        if self.running_thread != None:
            self.running_thread.stop()

        self.running_thread = Runner(settings, filename, 30, callback)
        self.running_thread.start()
Ejemplo n.º 3
0
class Steptionary:

    dictionaries = {}
    running_thread = None

    def refresh_steps(self, dictionary):
        l = []
        for f in dictionary[FEATURES]:
            l += cache.get(f)

        dictionary[STEPS] = list(set(l))

    # Initialize window's dictionary
    def init(self, id):
        self.dictionaries[id] = {STEPS: [], FEATURES: []}

    # Add feature to the window's dictionary
    def add(self, id, filename):
        dictionary = self.dictionaries[id]
        if filename not in dictionary[FEATURES]:
            s = set(dictionary[FEATURES])
            s.add(filename)
            dictionary[FEATURES] = list(s)

        self.refresh_steps(dictionary)

    # Update steps only if the dictionary contains this feature
    def update(self, id, filename):
        dictionary = self.dictionaries[id]
        if filename in dictionary[FEATURES]:
            self.refresh_steps(dictionary)

    def setup(self, id, folders):
        def callback(filename):
            self.add(id, filename)

        self.init(id)
        if self.running_thread != None:
            self.running_thread.stop()

        self.running_thread = Runner(settings, folders, 30, callback)
        self.running_thread.start()

    def update_all(self, filename):
        def callback(filename):
            for id in self.dictionaries.keys():
                self.update(id, filename)

        if self.running_thread != None:
            self.running_thread.stop()

        self.running_thread = Runner(settings, filename, 30, callback)
        self.running_thread.start()

    def get_completions(self, id, prefix):
        steps = self.dictionaries[id][STEPS]
        completions = [(e,) * 2 for e in steps if e.find(prefix) != -1]
        return completions

    def is_feature(self, filename):
        name, extension = os.path.splitext(filename)
        if extension in settings.get('cucumber_feature_extensions'):
            return True

        return False