Skip to content

Commit 49ed4d7

Browse files
committed
Fix test cases under XP
N++ under returns short filenames for the various temp / session files Tests altered to normalise all filenames to the long filename (using ctypes)
1 parent 2bc74ba commit 49ed4d7

File tree

2 files changed

+18
-8
lines changed

2 files changed

+18
-8
lines changed

PythonScript/python_tests/tests/NotepadWrapperTestCase.py

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import os
55
import shlex
66
import tempfile
7+
import ctypes
8+
79
from Npp import *
810

911
class NotepadTestCase(unittest.TestCase):
@@ -162,7 +164,7 @@ def test_getFiles(self):
162164
# python temp files are all lowercase, so make the filenames from getFiles lowercase too
163165
lowercaseFiles = []
164166
for entry in files:
165-
lowercaseFiles.append((entry[0].lower(), entry[1], entry[2], entry[3]))
167+
lowercaseFiles.append((self.normalise_filename(entry[0]), entry[1], entry[2], entry[3]))
166168

167169
# clean up
168170
notepad.activateBufferID(bufferID1)
@@ -172,8 +174,8 @@ def test_getFiles(self):
172174
editor.setSavePoint()
173175
notepad.close()
174176

175-
self.assertIn((file1, bufferID1, index1, 0), lowercaseFiles)
176-
self.assertIn((file2, bufferID2, index2, 0), lowercaseFiles)
177+
self.assertIn((self.normalise_filename(file1), bufferID1, index1, 0), lowercaseFiles)
178+
self.assertIn((self.normalise_filename(file2), bufferID2, index2, 0), lowercaseFiles)
177179
self.assertEqual(len(files), 2)
178180

179181

@@ -212,6 +214,12 @@ def test_saveLoadSession(self):
212214
self.assertEqual(file1Content, 'File 1 session')
213215
self.assertEqual(file2Content, 'File 2 session')
214216

217+
def normalise_filename(self, filename):
218+
buf = ctypes.create_unicode_buffer(260)
219+
GetLongPathName = ctypes.windll.kernel32.GetLongPathNameW
220+
GetLongPathName(filename.decode('windows-1252'), buf, 260)
221+
return buf.value.lower()
222+
215223
def test_getSessionFiles(self):
216224
# Create and open two files
217225
file1 = self.get_temp_filename()
@@ -232,8 +240,8 @@ def test_getSessionFiles(self):
232240
notepad.close()
233241
notepad.activateFile(file2)
234242
notepad.close()
235-
236-
self.assertEqual(sessionFiles, [file1, file2])
243+
normalisedSessionFiles = [self.normalise_filename(f) for f in sessionFiles]
244+
self.assertEqual(normalisedSessionFiles, [self.normalise_filename(file1), self.normalise_filename(file2)])
237245

238246
def test_saveCurrentSession(self):
239247

@@ -256,10 +264,10 @@ def test_saveCurrentSession(self):
256264
notepad.close()
257265

258266
sessionFiles = notepad.getSessionFiles(sessionFile)
259-
lowercaseSessionFiles = [file.lower() for file in sessionFiles]
267+
lowercaseSessionFiles = [self.normalise_filename(file) for file in sessionFiles]
260268

261-
self.assertIn(file1, lowercaseSessionFiles)
262-
self.assertIn(file2, lowercaseSessionFiles)
269+
self.assertIn(self.normalise_filename(file1), lowercaseSessionFiles)
270+
self.assertIn(self.normalise_filename(file2), lowercaseSessionFiles)
263271

264272

265273
def test_reloadFile(self):

PythonScript/python_tests/tests/ScintillaWrapperTestCase.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,8 @@ def test_scintillawrapper_position_void_void(self):
243243
self.assertEqual(position, 4)
244244

245245
def callback_scintillawrapper_position_void_void(self, args):
246+
if args["modificationType"] & MODIFICATIONFLAGS.INSERTTEXT == 0: # Ignore anything that isn't INSERTTEXT
247+
return
246248
editor.clearCallbacks()
247249
editor.write("1234")
248250
position = editor.getCurrentPos()

0 commit comments

Comments
 (0)