Skip to content

Commit 52c50bf

Browse files
committed
Make the test pass when colorValues is already populated
1 parent 9003444 commit 52c50bf

File tree

2 files changed

+20
-16
lines changed

2 files changed

+20
-16
lines changed

ReText/editor.py

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -56,18 +56,21 @@
5656

5757
colorValues = {}
5858

59-
def getColor(colorName, settings=settings):
59+
def updateColorScheme(settings=settings):
60+
palette = QApplication.palette()
61+
windowColor = palette.color(QPalette.ColorRole.Window)
62+
themeVariant = 'light' if windowColor.lightness() > 150 else 'dark'
63+
settings.beginGroup('ColorScheme')
64+
for key in colors:
65+
if settings.contains(key):
66+
colorValues[key] = settings.value(key, type=QColor)
67+
else:
68+
colorValues[key] = QColor(colors[key][themeVariant])
69+
settings.endGroup()
70+
71+
def getColor(colorName):
6072
if not colorValues:
61-
palette = QApplication.palette()
62-
windowColor = palette.color(QPalette.ColorRole.Window)
63-
themeVariant = 'light' if windowColor.lightness() > 150 else 'dark'
64-
settings.beginGroup('ColorScheme')
65-
for key in colors:
66-
if settings.contains(key):
67-
colorValues[key] = settings.value(key, type=QColor)
68-
else:
69-
colorValues[key] = QColor(colors[key][themeVariant])
70-
settings.endGroup()
73+
updateColorScheme()
7174
return colorValues[colorName]
7275

7376
def documentIndentMore(document, cursor, globalSettings=globalSettings):

tests/test_settings.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
from PyQt5.QtWidgets import QApplication
2525
from ReText import readListFromSettings, writeListToSettings, \
2626
readFromSettings, writeToSettings
27-
from ReText.editor import getColor
27+
from ReText.editor import getColor, updateColorScheme
2828

2929
# For this particular test, QCoreApplication is enough. However, we should
3030
# only have one QCoreApplication instance for all tests in a process. As
@@ -83,10 +83,11 @@ def test_storingColors(self):
8383
self.settings.setValue('ColorScheme/htmlTags', 'green')
8484
self.settings.setValue('ColorScheme/htmlSymbols', '#ff8800')
8585
self.settings.setValue('ColorScheme/htmlComments', '#abc')
86-
self.assertEqual(getColor('htmlTags', self.settings), QColor(0x00, 0x80, 0x00))
87-
self.assertEqual(getColor('htmlSymbols', self.settings), QColor(0xff, 0x88, 0x00))
88-
self.assertEqual(getColor('htmlStrings', self.settings), Qt.GlobalColor.darkYellow) # default
89-
self.assertEqual(getColor('htmlComments', self.settings), QColor(0xaa, 0xbb, 0xcc))
86+
updateColorScheme(self.settings)
87+
self.assertEqual(getColor('htmlTags'), QColor(0x00, 0x80, 0x00))
88+
self.assertEqual(getColor('htmlSymbols'), QColor(0xff, 0x88, 0x00))
89+
self.assertEqual(getColor('htmlStrings'), Qt.GlobalColor.darkYellow) # default
90+
self.assertEqual(getColor('htmlComments'), QColor(0xaa, 0xbb, 0xcc))
9091

9192
if __name__ == '__main__':
9293
unittest.main()

0 commit comments

Comments
 (0)