forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			51 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # This Source Code Form is subject to the terms of the Mozilla Public
 | |
| # License, v. 2.0. If a copy of the MPL was not distributed with this
 | |
| # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 | |
| 
 | |
| import sys
 | |
| from io import StringIO
 | |
| 
 | |
| import mozunit
 | |
| import pytest
 | |
| 
 | |
| from mozterm import Terminal
 | |
| from mozterm.widgets import Footer
 | |
| 
 | |
| 
 | |
| @pytest.fixture
 | |
| def terminal():
 | |
|     blessed = pytest.importorskip("blessed")
 | |
| 
 | |
|     kind = "xterm-256color"
 | |
|     try:
 | |
|         term = Terminal(stream=StringIO(), force_styling=True, kind=kind)
 | |
|     except blessed.curses.error:
 | |
|         pytest.skip("terminal '{}' not found".format(kind))
 | |
| 
 | |
|     return term
 | |
| 
 | |
| 
 | |
| @pytest.mark.skipif(
 | |
|     not sys.platform.startswith("win"),
 | |
|     reason="Only do ANSI Escape Sequence comparisons on Windows.",
 | |
| )
 | |
| def test_footer(terminal):
 | |
|     footer = Footer(terminal=terminal)
 | |
|     footer.write(
 | |
|         [
 | |
|             ("bright_black", "foo"),
 | |
|             ("green", "bar"),
 | |
|         ]
 | |
|     )
 | |
|     value = terminal.stream.getvalue()
 | |
|     expected = "\x1b7\x1b[90mfoo\x1b(B\x1b[m \x1b[32mbar\x1b(B\x1b[m\x1b8"
 | |
|     assert value == expected
 | |
| 
 | |
|     footer.clear()
 | |
|     value = terminal.stream.getvalue()[len(value) :]
 | |
|     expected = "\x1b[1G\x1b[K"
 | |
|     assert value == expected
 | |
| 
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     mozunit.main()
 | 
