<s> import os <EOL> import sys <EOL> import json <EOL> import unittest <EOL> import radon . cli . tools as tools <EOL> from radon . visitors import Function , Class <EOL> from radon . raw import Module <EOL> try : <EOL> import unittest . mock as mock <EOL> except ImportError : <EOL> import mock <EOL> from paramunittest import parametrized <EOL> def fake_isfile ( filename ) : <EOL> if filename == '<STR_LIT>' : <EOL> return True <EOL> return False <EOL> def fake_walk ( start ) : <EOL> dirs = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> contents = { '<STR_LIT>' : [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT>' , '<STR_LIT>' ] } <EOL> yield '<STR_LIT:.>' , dirs , [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> for d in dirs : <EOL> yield '<STR_LIT>' . format ( d ) , [ ] , contents [ d ] <EOL> class TestGenericTools ( unittest . TestCase ) : <EOL> def test_open ( self ) : <EOL> with tools . _open ( '<STR_LIT:->' ) as fobj : <EOL> self . assertTrue ( fobj is sys . stdin ) <EOL> m = mock . mock_open ( ) <EOL> with mock . patch ( '<STR_LIT>' , m , create = True ) : <EOL> tools . _open ( '<STR_LIT>' ) . __enter__ ( ) <EOL> m . assert_called_with ( '<STR_LIT>' ) <EOL> class TestIterFilenames ( unittest . TestCase ) : <EOL> def setUp ( self ) : <EOL> self . iter_files = lambda * a , ** kw : list ( tools . iter_filenames ( * a , ** kw ) ) <EOL> def assertPEqual ( self , a , b ) : <EOL> paths = [ list ( map ( os . path . normpath , p ) ) for p in ( a , b ) ] <EOL> self . assertEqual ( * paths ) <EOL> def test_stdin ( self ) : <EOL> self . assertEqual ( self . iter_files ( [ '<STR_LIT:->' ] ) , [ '<STR_LIT:->' ] ) <EOL> @ mock . patch ( '<STR_LIT>' ) <EOL> @ mock . patch ( '<STR_LIT>' ) <EOL> def test_all ( self , os_mod , os_path_mod ) : <EOL> os_path_mod . normpath = os . path . normpath <EOL> os_path_mod . basename = os . path . basename <EOL> os_path_mod . join = os . path . join <EOL> os_path_mod . isfile . side_effect = fake_isfile <EOL> os_mod . walk = fake_walk <EOL> self . assertPEqual ( self . iter_files ( [ '<STR_LIT>' , '<STR_LIT>' ] ) , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' ] ) <EOL> self . assertPEqual ( self . iter_files ( [ '<STR_LIT>' , '<STR_LIT>' ] , <EOL> '<STR_LIT>' ) , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> self . assertPEqual ( self . iter_files ( [ '<STR_LIT>' , '<STR_LIT>' ] , <EOL> '<STR_LIT>' ) , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' ] ) <EOL> self . assertPEqual ( self . iter_files ( [ '<STR_LIT>' , '<STR_LIT>' ] , <EOL> '<STR_LIT>' ) , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> self . assertPEqual ( self . iter_files ( [ '<STR_LIT>' , '<STR_LIT>' ] , None , <EOL> '<STR_LIT>' ) , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' ] ) <EOL> self . assertPEqual ( self . iter_files ( [ '<STR_LIT>' , '<STR_LIT>' ] , None , <EOL> '<STR_LIT>' ) , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> CC_RESULTS_CASES = [ <EOL> ( [ <EOL> Function ( '<STR_LIT:name>' , <NUM_LIT:12> , <NUM_LIT:0> , <NUM_LIT:16> , False , None , [ ] , <NUM_LIT:6> ) , <EOL> ] , { <EOL> '<STR_LIT:type>' : '<STR_LIT>' , '<STR_LIT:name>' : '<STR_LIT:name>' , '<STR_LIT>' : <NUM_LIT:12> , '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT:16> , '<STR_LIT>' : [ ] , '<STR_LIT>' : <NUM_LIT:6> , '<STR_LIT>' : '<STR_LIT:B>' , <EOL> } ) , <EOL> ( [ <EOL> Class ( '<STR_LIT>' , <NUM_LIT> , <NUM_LIT:0> , <NUM_LIT> , [ <EOL> Function ( '<STR_LIT:name>' , <NUM_LIT> , <NUM_LIT:4> , <NUM_LIT> , True , '<STR_LIT>' , [ ] , <NUM_LIT:7> ) , <EOL> ] , [ ] , <NUM_LIT:7> ) , <EOL> ] , { <EOL> '<STR_LIT:type>' : '<STR_LIT:class>' , '<STR_LIT:name>' : '<STR_LIT>' , '<STR_LIT>' : <NUM_LIT> , '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT> , '<STR_LIT>' : <NUM_LIT:7> , '<STR_LIT>' : '<STR_LIT:B>' , '<STR_LIT>' : [ <EOL> { <EOL> '<STR_LIT:type>' : '<STR_LIT>' , '<STR_LIT>' : <NUM_LIT> , '<STR_LIT>' : <NUM_LIT:4> , '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : [ ] , '<STR_LIT>' : <NUM_LIT:7> , '<STR_LIT>' : '<STR_LIT:B>' , '<STR_LIT>' : <EOL> '<STR_LIT>' , '<STR_LIT:name>' : '<STR_LIT:name>' , <EOL> } <EOL> ] , <EOL> } ) , <EOL> ( [ <EOL> Function ( '<STR_LIT:name>' , <NUM_LIT:12> , <NUM_LIT:0> , <NUM_LIT:16> , False , None , [ <EOL> Function ( '<STR_LIT>' , <NUM_LIT> , <NUM_LIT:4> , <NUM_LIT> , False , None , [ ] , <NUM_LIT:4> ) , <EOL> ] , <NUM_LIT:10> ) , <EOL> ] , { <EOL> '<STR_LIT:type>' : '<STR_LIT>' , '<STR_LIT:name>' : '<STR_LIT:name>' , '<STR_LIT>' : <NUM_LIT:12> , '<STR_LIT>' : <NUM_LIT:0> , <EOL> '<STR_LIT>' : <NUM_LIT:16> , '<STR_LIT>' : <NUM_LIT:10> , '<STR_LIT>' : '<STR_LIT:B>' , '<STR_LIT>' : [ <EOL> { <EOL> '<STR_LIT:name>' : '<STR_LIT>' , '<STR_LIT>' : <NUM_LIT> , '<STR_LIT>' : <NUM_LIT:4> , '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : [ ] , '<STR_LIT>' : <NUM_LIT:4> , '<STR_LIT>' : '<STR_LIT:A>' , '<STR_LIT:type>' : <EOL> '<STR_LIT>' , <EOL> } <EOL> ] <EOL> } ) , <EOL> ] <EOL> @ parametrized ( * CC_RESULTS_CASES ) <EOL> class TestCCToDict ( unittest . TestCase ) : <EOL> def setParameters ( self , blocks , ** dict_result ) : <EOL> self . blocks = blocks <EOL> self . dict_result = dict_result <EOL> def testCCToDict ( self ) : <EOL> self . assertEqual ( tools . cc_to_dict ( self . blocks ) , self . dict_result ) <EOL> CC_TO_XML_CASE = [ <EOL> { '<STR_LIT>' : [ ] , '<STR_LIT>' : <NUM_LIT:16> , '<STR_LIT>' : <NUM_LIT:6> , '<STR_LIT>' : <NUM_LIT:12> , '<STR_LIT>' : <EOL> False , '<STR_LIT:name>' : '<STR_LIT:name>' , '<STR_LIT>' : <NUM_LIT:0> , '<STR_LIT>' : '<STR_LIT:B>' } , <EOL> { '<STR_LIT>' : <NUM_LIT:8> , '<STR_LIT>' : <NUM_LIT> , '<STR_LIT>' : '<STR_LIT:B>' , '<STR_LIT>' : <NUM_LIT> , '<STR_LIT:name>' : <EOL> '<STR_LIT>' , '<STR_LIT>' : <NUM_LIT:0> } , <EOL> { '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : [ ] , '<STR_LIT>' : <NUM_LIT> , '<STR_LIT>' : <NUM_LIT:7> , <EOL> '<STR_LIT>' : <NUM_LIT> , '<STR_LIT>' : True , '<STR_LIT:name>' : '<STR_LIT:name>' , '<STR_LIT>' : <NUM_LIT:4> , <EOL> '<STR_LIT>' : '<STR_LIT:B>' } , <EOL> { '<STR_LIT>' : [ ] , '<STR_LIT>' : <NUM_LIT> , '<STR_LIT>' : <NUM_LIT:4> , '<STR_LIT>' : <NUM_LIT> , '<STR_LIT>' : <EOL> False , '<STR_LIT:name>' : '<STR_LIT>' , '<STR_LIT>' : <NUM_LIT:4> , '<STR_LIT>' : '<STR_LIT:A>' } , <EOL> { '<STR_LIT>' : <NUM_LIT:16> , '<STR_LIT>' : <NUM_LIT:10> , '<STR_LIT>' : <NUM_LIT:12> , '<STR_LIT>' : False , '<STR_LIT:name>' : <EOL> '<STR_LIT:name>' , '<STR_LIT>' : <NUM_LIT:0> , '<STR_LIT>' : '<STR_LIT:B>' } , <EOL> ] <EOL> CC_TO_CODECLIMATE_CASE = [ <EOL> { '<STR_LIT>' : [ ] , '<STR_LIT>' : <NUM_LIT:16> , '<STR_LIT>' : <NUM_LIT:6> , '<STR_LIT>' : <NUM_LIT:12> , '<STR_LIT:type>' : <EOL> '<STR_LIT>' , '<STR_LIT:name>' : '<STR_LIT:foo>' , '<STR_LIT>' : <NUM_LIT:0> , '<STR_LIT>' : '<STR_LIT:B>' } , <EOL> { '<STR_LIT>' : <NUM_LIT:8> , '<STR_LIT>' : <NUM_LIT> , '<STR_LIT>' : '<STR_LIT:B>' , '<STR_LIT>' : <NUM_LIT> , '<STR_LIT:type>' : '<STR_LIT:class>' , <EOL> '<STR_LIT:name>' : '<STR_LIT>' , '<STR_LIT>' : <NUM_LIT:0> } , <EOL> { '<STR_LIT>' : [ ] , '<STR_LIT>' : <NUM_LIT> , '<STR_LIT>' : <NUM_LIT:4> , '<STR_LIT>' : <NUM_LIT> , '<STR_LIT:type>' : <EOL> '<STR_LIT>' , '<STR_LIT:name>' : '<STR_LIT:bar>' , '<STR_LIT>' : <NUM_LIT:4> , '<STR_LIT>' : '<STR_LIT:A>' } , <EOL> ] <EOL> class TestDictConversion ( unittest . TestCase ) : <EOL> def test_raw_to_dict ( self ) : <EOL> self . assertEqual ( tools . raw_to_dict ( Module ( <NUM_LIT> , <NUM_LIT> , <NUM_LIT> , <NUM_LIT:8> , <NUM_LIT> , <NUM_LIT:5> , <NUM_LIT:3> ) ) , <EOL> { '<STR_LIT>' : <NUM_LIT> , '<STR_LIT>' : <NUM_LIT> , '<STR_LIT>' : <NUM_LIT> , '<STR_LIT>' : <NUM_LIT:8> , <EOL> '<STR_LIT>' : <NUM_LIT> , '<STR_LIT:blank>' : <NUM_LIT:5> , '<STR_LIT>' : <NUM_LIT:3> } ) <EOL> def test_cc_to_xml ( self ) : <EOL> self . assertEqual ( tools . dict_to_xml ( { '<STR_LIT:filename>' : CC_TO_XML_CASE } ) , <EOL> '''<STR_LIT>''' . replace ( '<STR_LIT:\n>' , '<STR_LIT>' ) . replace ( '<STR_LIT:U+0020>' , '<STR_LIT>' ) ) <EOL> def test_cc_to_codeclimate ( self ) : <EOL> actual_results = tools . dict_to_codeclimate_issues ( { '<STR_LIT:filename>' : CC_TO_CODECLIMATE_CASE } ) <EOL> expected_results = [ <EOL> json . dumps ( { <EOL> "<STR_LIT:description>" : "<STR_LIT>" , <EOL> "<STR_LIT>" : "<STR_LIT>" , <EOL> "<STR_LIT:content>" : { "<STR_LIT:body>" : tools . get_content ( ) } , <EOL> "<STR_LIT:location>" : { "<STR_LIT:path>" : "<STR_LIT:filename>" , "<STR_LIT>" : { "<STR_LIT>" : <NUM_LIT:12> , "<STR_LIT:end>" : <NUM_LIT:16> } } , <EOL> "<STR_LIT:type>" : "<STR_LIT>" , <EOL> "<STR_LIT>" : [ "<STR_LIT>" ] , <EOL> "<STR_LIT>" : <NUM_LIT> <EOL> } ) , <EOL> json . dumps ( { <EOL> "<STR_LIT:description>" : "<STR_LIT>" , <EOL> "<STR_LIT>" : "<STR_LIT>" , <EOL> "<STR_LIT:content>" : { "<STR_LIT:body>" : tools . get_content ( ) } , <EOL> "<STR_LIT:location>" : { "<STR_LIT:path>" : "<STR_LIT:filename>" , "<STR_LIT>" : { "<STR_LIT>" : <NUM_LIT> , "<STR_LIT:end>" : <NUM_LIT> } } , <EOL> "<STR_LIT:type>" : "<STR_LIT>" , <EOL> "<STR_LIT>" : [ "<STR_LIT>" ] , <EOL> "<STR_LIT>" : <NUM_LIT> <EOL> } ) , <EOL> ] <EOL> actual_sorted = [ ] <EOL> for i in actual_results : <EOL> actual_sorted . append ( json . loads ( i ) ) <EOL> expected_sorted = [ ] <EOL> for i in expected_results : <EOL> expected_sorted . append ( json . loads ( i ) ) <EOL> self . assertEqual ( actual_sorted , expected_sorted ) <EOL> CC_TO_TERMINAL_CASES = [ <EOL> Class ( name = '<STR_LIT>' , lineno = <NUM_LIT> , col_offset = <NUM_LIT:0> , endline = <NUM_LIT> , <EOL> methods = [ Function ( name = '<STR_LIT>' , lineno = <NUM_LIT> , col_offset = <NUM_LIT:4> , endline = <NUM_LIT> , <EOL> is_method = True , classname = '<STR_LIT>' , closures = [ ] , <EOL> complexity = <NUM_LIT:4> ) ] , <EOL> inner_classes = [ ] , real_complexity = <NUM_LIT:4> ) , <EOL> Function ( name = '<STR_LIT>' , lineno = <NUM_LIT> , col_offset = <NUM_LIT:4> , endline = <NUM_LIT> , is_method = True , <EOL> classname = '<STR_LIT>' , closures = [ ] , complexity = <NUM_LIT:7> ) , <EOL> Function ( name = '<STR_LIT>' , lineno = <NUM_LIT:12> , col_offset = <NUM_LIT:0> , endline = <NUM_LIT:16> , is_method = False , <EOL> classname = None , closures = [ ] , complexity = <NUM_LIT> ) , <EOL> Function ( name = '<STR_LIT>' , lineno = <NUM_LIT:12> , col_offset = <NUM_LIT:0> , endline = <NUM_LIT:16> , is_method = False , <EOL> classname = None , closures = [ ] , complexity = <NUM_LIT> ) , <EOL> Function ( name = '<STR_LIT>' , lineno = <NUM_LIT:12> , col_offset = <NUM_LIT:0> , endline = <NUM_LIT:16> , is_method = False , <EOL> classname = None , closures = [ ] , complexity = <NUM_LIT:32> ) , <EOL> Function ( name = '<STR_LIT>' , lineno = <NUM_LIT:12> , col_offset = <NUM_LIT:0> , endline = <NUM_LIT:16> , is_method = False , <EOL> classname = None , closures = [ ] , complexity = <NUM_LIT> ) , <EOL> ] <EOL> class TestCCToTerminal ( unittest . TestCase ) : <EOL> def test_cc_to_terminal ( self ) : <EOL> tools . LETTERS_COLORS = dict ( ( l , '<STR_LIT>' . format ( l ) ) for l in '<STR_LIT>' ) <EOL> tools . RANKS_COLORS = dict ( ( r , '<STR_LIT>' . format ( r ) ) for r in '<STR_LIT>' ) <EOL> tools . BRIGHT = '<STR_LIT:@>' <EOL> tools . RESET = '<STR_LIT>' <EOL> results = CC_TO_TERMINAL_CASES <EOL> res = [ <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> ] <EOL> res_noshow = [ '<STR_LIT>' . format ( r [ : r . index ( '<STR_LIT:(>' ) - <NUM_LIT:1> ] ) for r in res ] <EOL> self . assertEqual ( tools . cc_to_terminal ( results , False , '<STR_LIT:A>' , '<STR_LIT:F>' , False ) , <EOL> ( res_noshow , <NUM_LIT> , <NUM_LIT:6> ) ) <EOL> self . assertEqual ( tools . cc_to_terminal ( results , True , '<STR_LIT:A>' , '<STR_LIT:F>' , False ) , <EOL> ( res , <NUM_LIT> , <NUM_LIT:6> ) ) <EOL> self . assertEqual ( tools . cc_to_terminal ( results , True , '<STR_LIT:A>' , '<STR_LIT:D>' , False ) , <EOL> ( res [ : - <NUM_LIT:2> ] , <NUM_LIT> , <NUM_LIT:4> ) ) <EOL> self . assertEqual ( tools . cc_to_terminal ( results , False , '<STR_LIT:A>' , '<STR_LIT:D>' , False ) , <EOL> ( res_noshow [ : - <NUM_LIT:2> ] , <NUM_LIT> , <NUM_LIT:4> ) ) <EOL> self . assertEqual ( tools . cc_to_terminal ( results , True , '<STR_LIT:C>' , '<STR_LIT:F>' , False ) , <EOL> ( res [ <NUM_LIT:2> : ] , <NUM_LIT> , <NUM_LIT:4> ) ) <EOL> self . assertEqual ( tools . cc_to_terminal ( results , True , '<STR_LIT:B>' , '<STR_LIT:E>' , False ) , <EOL> ( res [ <NUM_LIT:1> : - <NUM_LIT:1> ] , <NUM_LIT> , <NUM_LIT:4> ) ) <EOL> self . assertEqual ( tools . cc_to_terminal ( results , True , '<STR_LIT:B>' , '<STR_LIT:F>' , True ) , <EOL> ( res [ <NUM_LIT:1> : ] , <NUM_LIT> , <NUM_LIT:6> ) ) </s>
