123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- # Copyright (C) 2017 YouCompleteMe Contributors
- #
- # This file is part of YouCompleteMe.
- #
- # YouCompleteMe is free software: you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
- # the Free Software Foundation, either version 3 of the License, or
- # (at your option) any later version.
- #
- # YouCompleteMe is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
- # along with YouCompleteMe. If not, see <http://www.gnu.org/licenses/>.
- from copy import deepcopy
- from hamcrest import assert_that, contains_string, equal_to
- from unittest import TestCase
- from ycm.client.debug_info_request import FormatDebugInfoResponse
- GENERIC_RESPONSE = {
- 'clang': {
- 'has_support': True,
- 'version': 'Clang version'
- },
- 'completer': {
- 'items': [
- {
- 'key': 'key',
- 'value': 'value'
- }
- ],
- 'name': 'Completer name',
- 'servers': [
- {
- 'address': '127.0.0.1',
- 'executable': '/path/to/executable',
- 'extras': [
- {
- 'key': 'key',
- 'value': 'value'
- }
- ],
- 'is_running': True,
- 'logfiles': [
- '/path/to/stdout/logfile',
- '/path/to/stderr/logfile'
- ],
- 'name': 'Server name',
- 'pid': 12345,
- 'port': 1234
- }
- ]
- },
- 'extra_conf': {
- 'is_loaded': False,
- 'path': '/path/to/extra/conf'
- },
- 'python': {
- 'executable': '/path/to/python/interpreter',
- 'version': 'Python version'
- }
- }
- class DebugInfoRequestTest( TestCase ):
- def test_FormatDebugInfoResponse_NoResponse( self ):
- assert_that(
- FormatDebugInfoResponse( None ),
- equal_to( 'Server errored, no debug info from server\n' )
- )
- def test_FormatDebugInfoResponse_NoExtraConf( self ):
- response = deepcopy( GENERIC_RESPONSE )
- response[ 'extra_conf' ].update( {
- 'is_loaded': False,
- 'path': None
- } )
- assert_that(
- FormatDebugInfoResponse( response ),
- contains_string(
- 'No extra configuration file found\n'
- )
- )
- def test_FormatDebugInfoResponse_ExtraConfFoundButNotLoaded( self ):
- response = deepcopy( GENERIC_RESPONSE )
- response[ 'extra_conf' ].update( {
- 'is_loaded': False,
- 'path': '/path/to/extra/conf'
- } )
- assert_that(
- FormatDebugInfoResponse( response ),
- contains_string(
- 'Extra configuration file found but not loaded\n'
- 'Extra configuration path: /path/to/extra/conf\n'
- )
- )
- def test_FormatDebugInfoResponse_ExtraConfFoundAndLoaded( self ):
- response = deepcopy( GENERIC_RESPONSE )
- response[ 'extra_conf' ].update( {
- 'is_loaded': True,
- 'path': '/path/to/extra/conf'
- } )
- assert_that(
- FormatDebugInfoResponse( response ),
- contains_string(
- 'Extra configuration file found and loaded\n'
- 'Extra configuration path: /path/to/extra/conf\n'
- )
- )
- def test_FormatDebugInfoResponse_Completer_ServerRunningWithHost( self ):
- response = deepcopy( GENERIC_RESPONSE )
- assert_that(
- FormatDebugInfoResponse( response ),
- contains_string(
- 'Completer name completer debug information:\n'
- ' Server name running at: http://127.0.0.1:1234\n'
- ' Server name process ID: 12345\n'
- ' Server name executable: /path/to/executable\n'
- ' Server name logfiles:\n'
- ' /path/to/stdout/logfile\n'
- ' /path/to/stderr/logfile\n'
- ' Server name key: value\n'
- ' Key: value\n'
- )
- )
- def test_FormatDebugInfoResponse_Completer_ServerRunningWithoutHost( self ):
- response = deepcopy( GENERIC_RESPONSE )
- response[ 'completer' ][ 'servers' ][ 0 ].update( {
- 'address': None,
- 'port': None
- } )
- assert_that(
- FormatDebugInfoResponse( response ),
- contains_string(
- 'Completer name completer debug information:\n'
- ' Server name running\n'
- ' Server name process ID: 12345\n'
- ' Server name executable: /path/to/executable\n'
- ' Server name logfiles:\n'
- ' /path/to/stdout/logfile\n'
- ' /path/to/stderr/logfile\n'
- ' Server name key: value\n'
- ' Key: value\n'
- )
- )
- def test_FormatDebugInfoResponse_Completer_ServerNotRunningWithNoLogfiles(
- self ):
- response = deepcopy( GENERIC_RESPONSE )
- response[ 'completer' ][ 'servers' ][ 0 ].update( {
- 'is_running': False,
- 'logfiles': []
- } )
- assert_that(
- FormatDebugInfoResponse( response ),
- contains_string(
- 'Completer name completer debug information:\n'
- ' Server name not running\n'
- ' Server name executable: /path/to/executable\n'
- ' No logfiles available\n'
- ' Server name key: value\n'
- ' Key: value\n'
- )
- )
|