Skip to content

Commit

Permalink
Refactor mocking sublime and sublime_plugin
Browse files Browse the repository at this point in the history
  • Loading branch information
deathaxe committed Jan 6, 2024
1 parent 64c7b31 commit 09f7b53
Show file tree
Hide file tree
Showing 7 changed files with 71 additions and 57 deletions.
16 changes: 3 additions & 13 deletions plugins/cmds.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,25 +6,15 @@
import re
import string
import subprocess
import sys
import threading

from collections import defaultdict, deque
from functools import reduce
from itertools import chain
from operator import itemgetter as iget

try:
import sublime
import sublime_plugin
from sublime import status_message, error_message

except ImportError: # running tests
from .tests.sublime_fake import sublime
from .tests.sublime_fake import sublime_plugin

sys.modules['sublime'] = sublime
sys.modules['sublime_plugin'] = sublime_plugin
import sublime
import sublime_plugin
from sublime import status_message, error_message

from .ctags import (FILENAME, PATH_ORDER, SYMBOL,
build_ctags, parse_tag_lines,
Expand Down
1 change: 0 additions & 1 deletion plugins/ctags.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
import os
import re
import subprocess
import sys

from subprocess import check_output

Expand Down
7 changes: 7 additions & 0 deletions plugins/tests/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import sys

from . import mock_sublime
from . import mock_sublime_plugin

sys.modules['sublime'] = mock_sublime
sys.modules['sublime_plugin'] = mock_sublime_plugin
40 changes: 40 additions & 0 deletions plugins/tests/mock_sublime.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
"""
Mock module for ``sublime`` in Sublime Text.
"""

import sys

# find flags
LITERAL = 1
IGNORECASE = 2
WHOLEWORD = 4
REVERSE = 8
WRAP = 16


def arch():
return 'x64'


def platform():
if sys.platform == 'darwin':
return 'osx'
if sys.platform == 'win32':
return 'windows'
return 'linux'


def version():
return '4126'


def load_settings(self, **kargs):
pass


def status_message(msg):
pass


def error_message(msg):
pass
19 changes: 19 additions & 0 deletions plugins/tests/mock_sublime_plugin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
"""
Mock module for ``sublime_plugin`` in Sublime Text.
"""

all_callbacks = {
'on_load': []
}


class WindowCommand(object):
pass


class TextCommand(object):
pass


class EventListener(object):
pass
30 changes: 0 additions & 30 deletions plugins/tests/sublime_fake.py

This file was deleted.

15 changes: 2 additions & 13 deletions plugins/utils.py
Original file line number Diff line number Diff line change
@@ -1,23 +1,12 @@
"""
common utilities used by all ctags modules
"""
import os
import re
import sys

# Helper functions

try:
import sublime
import sublime_plugin
from sublime import status_message, error_message

except ImportError: # running tests
from .tests.sublime_fake import sublime
from .tests.sublime_fake import sublime_plugin

sys.modules['sublime'] = sublime
sys.modules['sublime_plugin'] = sublime_plugin
import sublime
import sublime_plugin


def get_settings():
Expand Down

0 comments on commit 09f7b53

Please sign in to comment.