Changeset - 4516cd7f6cbb
[Not reviewed]
0 1 0
Branko Majic (branko) - 6 years ago 2020-05-13 17:11:51
branko@majic.rs
GC-33: Fixed Python 3.8 deprecation warning about use of collections.* instead of collections.abc.*.
1 file changed with 2 insertions and 2 deletions:
0 comments (0 inline, 0 general)
tests/test_decorators.py
Show inline comments
 
# -*- coding: utf-8 -*-
 
#
 
# Copyright (C) 2018 Branko Majic
 
#
 
# This file is part of Gimmecert.
 
#
 
# Gimmecert 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.
 
#
 
# Gimmecert 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
 
# Gimmecert.  If not, see <http://www.gnu.org/licenses/>.
 
#
 

	
 

	
 
import collections
 
import collections.abc
 

	
 
import gimmecert.decorators
 

	
 
import pytest
 

	
 

	
 
def test_get_subcommand_parser_setup_functions_returns_list():
 

	
 
    registered_functions = gimmecert.decorators.get_subcommand_parser_setup_functions()
 

	
 
    assert isinstance(registered_functions, collections.Iterable)
 
    assert isinstance(registered_functions, collections.abc.Iterable)
 

	
 

	
 
def test_subcommand_parser_decorator_registers_function():
 

	
 
    @gimmecert.decorators.subcommand_parser
 
    def myfunction1(parser, subparsers):
 
        pass
 

	
 
    @gimmecert.decorators.subcommand_parser
 
    def myfunction2(parser, subparsers):
 
        pass
 

	
 
    registered_functions = gimmecert.decorators.get_subcommand_parser_setup_functions()
 

	
 
    assert myfunction1 in registered_functions
 
    assert myfunction2 in registered_functions
 

	
 

	
 
def test_subcommand_parser_decorator_ensures_function_has_correct_signature():
 

	
 
    with pytest.raises(gimmecert.decorators.SetupSubcommandParserInvalidSignature):
 

	
 
        @gimmecert.decorators.subcommand_parser
 
        def invalid_signature_no_arguments():
 
            pass
 

	
 
    with pytest.raises(gimmecert.decorators.SetupSubcommandParserInvalidSignature):
 

	
 
        @gimmecert.decorators.subcommand_parser
 
        def invalid_signature_too_many_arguments(parser, subparsers, extra):
 
            pass
0 comments (0 inline, 0 general)