Exemplo n.º 1
0
        def test0_panel_ops( me):
            pa = Panel(a)
            pa += None
            pa *= None
            pa *= 'boza',{}

            s = Grab_stdout()
            pa._print()
            expect = """\
Panel {} 5 columns
 +
 +   5: input-Checkbox: "log.enabled", size 15
    23: input-Chooser: "dir.change_root", size 19
    48: outside: "other one", size 9
    66: outside: "bozoa", size 5
    72: empty: "pipo", flags @, size 7
 +   4: input-Text: "log.name", size 13x3
    23: input-Text: "log.size", size 12
    48: label: "dir.change_response.label", size 29
 +  23: button: "trace.show", size 13
    48: input-Chooser: "dir.change_response", size 23x3
 +   6: outside: "some text", size 9
    23: button: "log.show", size 11
 + None
     0: outside: "boza", size 4
"""
            s.release()
            result = str(s)
            #print result
            print result
            if result != expect:
                df = '\n'.join( diff( result, expect, 'result', 'expect') )
                me.failUnless( result == expect, 'result != expect\n'+df)
Exemplo n.º 2
0
 def compare( me, mode='panelsz'):
     s = Grab_stdout()
     panel_term._print( mode=mode)
     p = str(s)
     s.release()
     s.grab()
     panel_term.walk( Panel.Printer( mode=mode ))
     q = str(s)
     s.release()
     if p != q:
         print q
         df = '\n'.join( diff( p,q, '_print recursive', 'Printer visitor'))
         me.failUnless( p == q, '_print != visitor\n'+df)
Exemplo n.º 3
0
def save_if_diff( fname, r, naistina =False, enc ='utf8', podrobno =True, makedirs= True, prepend_py_enc =False, prezapis =False):
    try:
        if isinstance( r, str): r = r.strip().split( '\n')
        r = [ x.rstrip() for x in r ]
        if prepend_py_enc:
            tenc = '# -*- coding: {enc} -*-'.format( **locals())
            if tenc not in r[:2]:
                r.insert( 0, tenc )
        txt = '\n'.join( r)

        if exists( fname):
            org = list( eutf.readlines( fname))
            org = [ x.rstrip() for x in org ]
        else:
            org = []

        razlika = (r != org)
        if razlika:
            if podrobno:
                if not org:
                    prn( 'ново:', fname )
                    prn( txt)
                else:
                    prn( 'разлика:', fname )
                    df = diff( org, r, 'старо', 'ново', lineterm='')
                    ima=0
                    for l in df:
                        ima=1
                        if l.startswith('---') or l.startswith('+++'): continue
                        prn( l)
                    if not ima:
                        for a,b in zip( org,r):
                            if a!=b:
                                prn( '?<'+repr(a))
                                prn( '?>'+repr(b))
        if razlika or prezapis:
            if naistina:
                if makedirs:
                    import os.path
                    fpath = os.path.dirname( fname)
                    if fpath and not os.path.exists( fpath): os.makedirs( fpath )
                prn( '>>>', fname)
                with eutf.filew( enc, fname ) as of:
                    of.write( txt+'\n')
        return razlika, txt
    except:
        prn( '??', fname)
        raise