1010from threading import Timer
1111import subprocess
1212
13- from Npp import notepad , editor , console , WINVER , LANGTYPE , MENUCOMMAND , BUFFERENCODING
13+ from Npp import notepad , editor , console , WINVER , LANGTYPE , MENUCOMMAND , BUFFERENCODING , LINENUMWIDTHMODE
1414
1515EnumWindowsProc = ctypes .WINFUNCTYPE (ctypes .c_bool ,
1616 ctypes .wintypes .HWND ,
@@ -69,14 +69,11 @@ def _get_active_styler_xml(self):
6969 darkmode_enabled = xml_doc .find ('GUIConfigs/GUIConfig[@name="DarkMode"]' ).get ('enable' )
7070 darkThemeName = xml_doc .find ('GUIConfigs/GUIConfig[@name="DarkMode"]' ).get ('darkThemeName' )
7171 lightThemeName = xml_doc .find ('GUIConfigs/GUIConfig[@name="DarkMode"]' ).get ('lightThemeName' )
72- print (darkmode_enabled )
73- themepath = os .path .join (self ._get_config_directory (), r'stylers.xml' )
72+ themepath = os .path .join (self ._get_config_directory (), r'stylers.xml' )
7473 if (darkmode_enabled != 'no' ):
75- print (darkThemeName )
76- themepath = os .path .join (self ._get_config_directory (), r'themes' , darkThemeName )
74+ themepath = os .path .join (self ._get_config_directory (), r'themes' , darkThemeName )
7775 elif (lightThemeName != '' ):
78- print (lightThemeName )
79- themepath = os .path .join (self ._get_config_directory (), r'themes' , lightThemeName )
76+ themepath = os .path .join (self ._get_config_directory (), r'themes' , lightThemeName )
8077 return themepath
8178
8279
@@ -447,26 +444,28 @@ def store_silent_updates(hwnd, lParam):
447444 f .close ()
448445 beforeReload = editor .getText ()
449446 # TODO: See https://github.com/notepad-plus-plus/notepad-plus-plus/issues/12418
450- self .assertFalse (notepad .reloadFile (filename , False ))
447+ self .assertTrue (notepad .reloadFile (filename , False ))
451448 afterReload = editor .getText ()
452449 notepad .close ()
453450
454451 self .assertEqual (beforeReload , 'Reload test' )
455452 self .assertEqual (afterReload , 'Updated outside' )
456453
457454 def test_getPluginConfigDir (self ):
458- dir = notepad .getPluginConfigDir ()
459- self .assertTrue (dir .lower ().endswith ('plugins\\ config' ))
455+ cur_dir = notepad .getPluginConfigDir ()
456+ self .assertTrue (cur_dir .lower ().endswith ('plugins\\ config' ))
460457
461458
462459 def test_nppCommandLineDir (self ):
463- dir = notepad .getNppDir ()
460+ cur_dir = notepad .getNppDir ()
464461 commandLine = notepad .getCommandLine ()
465462
466- nppExe = shlex .split (commandLine )[0 ]
463+ nppExe = shlex .split (commandLine , posix = False )[0 ]
467464 nppDirOfExe = os .path .dirname (nppExe )
468-
469- self .assertEqual (dir , nppDirOfExe )
465+ if nppDirOfExe :
466+ self .assertEqual (cur_dir , nppDirOfExe , msg = "Expected same value, got: {} vs. {}" .format (cur_dir , nppDirOfExe ))
467+ else :
468+ self .assertTrue (len (commandLine ) != 0 )
470469
471470
472471# new tests
@@ -1501,7 +1500,8 @@ def start_monitor():
15011500
15021501 menu_handle = ctypes .windll .user32 .SendMessageW (tabbar_context_menu_hwnd , MN_GETHMENU , 0 , 0 )
15031502 item_count = ctypes .windll .user32 .GetMenuItemCount (menu_handle )
1504- self .assertEqual (item_count , 16 , msg = u'Expected 16 menu items but received:{}' .format (item_count ))
1503+ # TODO: a hard-coded value is quite bad
1504+ self .assertEqual (item_count , 17 , msg = u'Expected 17 menu items but received:{}' .format (item_count ))
15051505 ctypes .windll .user32 .SendMessageW (tabbar_context_menu_hwnd , WM_CLOSE , 0 , 0 )
15061506
15071507 timer = Timer (1 , start_monitor )
@@ -1515,14 +1515,123 @@ def test_getPluginHomePath(self):
15151515 _ , _ , plugin_dir = notepad .getPluginHomePath ().rpartition ('\\ ' )
15161516 self .assertTrue ('plugins' == plugin_dir )
15171517
1518+
15181519 def test_getSettingsOnCloudPath (self ):
15191520 ''' Check if cloud path last part has default empty '''
15201521 self .__test_invalid_parameter_passed (notepad .getSettingsOnCloudPath )
15211522 _ , _ , cloud_dir = notepad .getSettingsOnCloudPath ().rpartition ('\\ ' )
15221523 self .assertTrue ('' == cloud_dir )
15231524
1525+
1526+ def test_setUntitledName (self ):
1527+ ''' '''
1528+ notepad_method = notepad .setUntitledName
1529+ with self .assertRaises (ArgumentError ):
1530+ self ._invalid_parameter_passed (notepad_method )
1531+ with self .assertRaises (ArgumentError ):
1532+ self ._invalid_parameter_passed (notepad_method , None ,None )
1533+ with self .assertRaises (ArgumentError ):
1534+ self ._invalid_parameter_passed (notepad_method , None ,None ,None )
1535+ with self .assertRaises (ArgumentError ):
1536+ self ._invalid_parameter_passed (notepad_method , - 1 )
1537+ with self .assertRaises (ArgumentError ):
1538+ self ._invalid_parameter_passed (notepad_method , - 1 ,- 1 ,- 1 )
1539+ with self .assertRaises (ArgumentError ):
1540+ self ._invalid_parameter_passed (notepad_method , '' ,'' )
1541+
1542+
1543+ def test_getTabColorID (self ):
1544+ ''' '''
1545+ notepad_method = notepad .getTabColorID
1546+ with self .assertRaises (ArgumentError ):
1547+ self ._invalid_parameter_passed (notepad_method , None )
1548+ with self .assertRaises (ArgumentError ):
1549+ self ._invalid_parameter_passed (notepad_method , None ,None )
1550+ with self .assertRaises (ArgumentError ):
1551+ self ._invalid_parameter_passed (notepad_method , None ,None ,None )
1552+ with self .assertRaises (ArgumentError ):
1553+ self ._invalid_parameter_passed (notepad_method , - 1 ,- 1 ,- 1 )
1554+ with self .assertRaises (ArgumentError ):
1555+ self ._invalid_parameter_passed (notepad_method , '' ,'' )
1556+ with self .assertRaises (ArgumentError ):
1557+ self ._invalid_parameter_passed (notepad_method , '42' ,'42' )
1558+
1559+ # first get the configured colors
1560+ notepad .menuCommand (MENUCOMMAND .VIEW_TAB_COLOUR_NONE )
1561+ tab_colour_none = notepad .getTabColorID ()
1562+ notepad .menuCommand (MENUCOMMAND .VIEW_TAB_COLOUR_1 )
1563+ tab_color_1 = notepad .getTabColorID ()
1564+ notepad .menuCommand (MENUCOMMAND .VIEW_TAB_COLOUR_2 )
1565+ tab_color_2 = notepad .getTabColorID ()
1566+ notepad .menuCommand (MENUCOMMAND .VIEW_TAB_COLOUR_3 )
1567+ tab_color_3 = notepad .getTabColorID ()
1568+ notepad .menuCommand (MENUCOMMAND .VIEW_TAB_COLOUR_4 )
1569+ tab_color_4 = notepad .getTabColorID ()
1570+ notepad .menuCommand (MENUCOMMAND .VIEW_TAB_COLOUR_5 )
1571+ tab_color_5 = notepad .getTabColorID ()
1572+
1573+ # test
1574+ notepad .menuCommand (MENUCOMMAND .VIEW_TAB_COLOUR_NONE )
1575+ self .assertTrue (tab_colour_none == notepad .getTabColorID ())
1576+ notepad .menuCommand (MENUCOMMAND .VIEW_TAB_COLOUR_1 )
1577+ self .assertTrue (tab_color_1 == notepad .getTabColorID ())
1578+ notepad .menuCommand (MENUCOMMAND .VIEW_TAB_COLOUR_2 )
1579+ self .assertTrue (tab_color_2 == notepad .getTabColorID ())
1580+ notepad .menuCommand (MENUCOMMAND .VIEW_TAB_COLOUR_3 )
1581+ self .assertTrue (tab_color_3 == notepad .getTabColorID ())
1582+ notepad .menuCommand (MENUCOMMAND .VIEW_TAB_COLOUR_4 )
1583+ self .assertTrue (tab_color_4 == notepad .getTabColorID ())
1584+ notepad .menuCommand (MENUCOMMAND .VIEW_TAB_COLOUR_5 )
1585+ self .assertTrue (tab_color_5 == notepad .getTabColorID ())
1586+
1587+
1588+ def test_getNativeLangFileName (self ):
1589+ ''' '''
1590+ self .__test_invalid_parameter_passed (notepad .getNativeLangFileName )
1591+
1592+
1593+ def test_lineNumberWidthMode (self ):
1594+ ''' '''
1595+ self .__test_invalid_parameter_passed (notepad .getLineNumberWidthMode )
1596+ self .__test_invalid_parameter_passed (notepad .setLineNumberWidthMode )
1597+
1598+ mode = notepad .getLineNumberWidthMode ()
1599+ if notepad .setLineNumberWidthMode (LINENUMWIDTHMODE .CONSTANT if mode == LINENUMWIDTHMODE .DYNAMIC else LINENUMWIDTHMODE .DYNAMIC ):
1600+ changed_mode = notepad .getLineNumberWidthMode ()
1601+ self .assertTrue (changed_mode != mode , msg = "Expected different modes, got {} and {}" .format (mode , changed_mode ))
1602+ if notepad .setLineNumberWidthMode (LINENUMWIDTHMODE .CONSTANT if mode == LINENUMWIDTHMODE .CONSTANT else LINENUMWIDTHMODE .DYNAMIC ):
1603+ revert_changed_mode = notepad .getLineNumberWidthMode ()
1604+ self .assertTrue (revert_changed_mode == mode , msg = "Expected same modes, got {} and {}" .format (mode , changed_mode ))
1605+
1606+ # TODO: How can this be tested in a meaningful way?
1607+ def test_getExternalLexerAutoIndentMode (self ):
1608+ ''' '''
1609+ notepad_method = notepad .getExternalLexerAutoIndentMode
1610+ with self .assertRaises (ArgumentError ):
1611+ self ._invalid_parameter_passed (notepad_method , None ,None )
1612+ with self .assertRaises (ArgumentError ):
1613+ self ._invalid_parameter_passed (notepad_method , None ,None ,None )
1614+ with self .assertRaises (ArgumentError ):
1615+ self ._invalid_parameter_passed (notepad_method , - 1 )
1616+ with self .assertRaises (ArgumentError ):
1617+ self ._invalid_parameter_passed (notepad_method , - 1 ,- 1 ,- 1 )
1618+ with self .assertRaises (ArgumentError ):
1619+ self ._invalid_parameter_passed (notepad_method , '' ,'' )
1620+
1621+ # TODO: How can this be tested in a meaningful way?
1622+ def test_setExternalLexerAutoIndentMode (self ):
1623+ ''' '''
1624+ self .__test_invalid_parameter_passed (notepad .setExternalLexerAutoIndentMode )
1625+
1626+ # TODO: How can this be tested in a meaningful way?
1627+ def test_isAutoIndention (self ):
1628+ ''' '''
1629+ self .__test_invalid_parameter_passed (notepad .isAutoIndention )
1630+
1631+
1632+ suite = unittest .TestLoader ().loadTestsFromTestCase (NotepadTestCase )
1633+
15241634if __name__ == '__main__' :
1525- suite = unittest .TestLoader ().loadTestsFromTestCase (NotepadTestCase )
15261635 alltests = unittest .TestSuite (suite )
15271636
15281637 results = unittest .TestResult ()
@@ -1545,10 +1654,7 @@ def writeTestFailure(error):
15451654 console .writeError ('Tests Run: {}\n Errors : {}\n Failures: {}\n ' .format (results .testsRun , len (results .errors ), len (results .failures )))
15461655 else :
15471656 console .write ('Tests Run: {}\n Errors : {}\n Failures: {}\n ' .format (results .testsRun , len (results .errors ), len (results .failures )))
1548- if results .skipped :
1549- console .write ('Skipped: {}\n ' .format (len (results .skipped )))
1550- for skipped_test in results .skipped :
1551- console .write (' {} - {}\n ' .format (skipped_test [0 ], skipped_test [1 ]))
1552- console .show ()
1553- else :
1554- suite = unittest .TestLoader ().loadTestsFromTestCase (NotepadTestCase )
1657+ if results .skipped :
1658+ console .write ('Skipped: {}\n ' .format (len (results .skipped )))
1659+ for skipped_test in results .skipped :
1660+ console .write (' {} - {}\n ' .format (skipped_test [0 ], skipped_test [1 ]))
0 commit comments