alixander / PyScribe

DEPCRECATED/UNMAINTAINED - A Python library to make debugging with print statements simpler and more effective.
MIT License
375 stars 22 forks source link

Support Python 3 #2

Closed tschuy closed 9 years ago

tschuy commented 9 years ago

PyScribe's built-in tests fail in a fresh virtualenv with Python 3.4:

(pyscribe)tschuy@tschuy-laptop:~/PyScribe$ ./run_tests 
3.4.0 (default, Apr 11 2014, 13:05:11) 
[GCC 4.8.2]

-----Starting test run-----

+++++++++++++++++++++++++++++++++++++++
Running test module: *watch_tests*
+++++++++++++++++++++++++++++++++++++++
Desugaring and running test file: basic.py
Traceback (most recent call last):
  File "./pyscribe/pyscribe.py", line 387, in <module>
    main()
  File "./pyscribe/pyscribe.py", line 373, in main
    program_ast)
  File "./pyscribe/pyscribe.py", line 187, in gen_desugared
    line_num in self.watcher.new_line_nums()):
  File "./pyscribe/pyscribe.py", line 80, in new_line_nums
    return sum(self.watch_lines.values(), [])
TypeError: can only concatenate list (not "filter") to list
Comparing result with correct version
Comparison failed
Test finished in 0.09349727630615234ms

+++++++++++++++++++++++++++++++++++++++
Running test module: *scribe_tests*
+++++++++++++++++++++++++++++++++++++++
Desugaring and running test file: filter_labels.py
Comparing result with correct version
Test passed
Test finished in 0.1398155689239502ms

Desugaring and running test file: more_objects.py
Comparing result with correct version
Test passed
Test finished in 0.13796281814575195ms

Desugaring and running test file: basic.py
Comparing result with correct version
Test passed
Test finished in 0.1412651538848877ms

Desugaring and running test file: distinguish.py
Traceback (most recent call last):
  File "./pyscribe/pyscribe.py", line 387, in <module>
    main()
  File "./pyscribe/pyscribe.py", line 373, in main
    program_ast)
  File "./pyscribe/pyscribe.py", line 183, in gen_desugared
    program_ast)  # don't want to include \n
  File "./pyscribe/pyscribe.py", line 235, in desugar_line
    desugared_line = self.distinguish(line, program_ast)
  File "./pyscribe/pyscribe.py", line 255, in distinguish
    utils.draw_line(unit=unit) +
  File "/home/tschuy/PyScribe/pyscribe/utils.py", line 6, in draw_line
    for _ in xrange(40):
NameError: name 'xrange' is not defined
Comparing result with correct version
Comparison failed
Test finished in 0.10086417198181152ms

Desugaring and running test file: labels.py
Comparing result with correct version
Test passed
Test finished in 0.1511390209197998ms

+++++++++++++++++++++++++++++++++++++++
Running test module: *iterscribe_tests*
+++++++++++++++++++++++++++++++++++++++
Desugaring and running test file: basic.py
Traceback (most recent call last):
  File "./pyscribe/pyscribe.py", line 387, in <module>
    main()
  File "./pyscribe/pyscribe.py", line 373, in main
    program_ast)
  File "./pyscribe/pyscribe.py", line 183, in gen_desugared
    program_ast)  # don't want to include \n
  File "./pyscribe/pyscribe.py", line 233, in desugar_line
    desugared_line = self.iterscribe(line, line_num, indentation, program_ast)
  File "./pyscribe/pyscribe.py", line 289, in iterscribe
    indentation))
  File "./pyscribe/pyscribe.py", line 268, in iter_start
    text +
  File "/home/tschuy/PyScribe/pyscribe/utils.py", line 6, in draw_line
    for _ in xrange(40):
NameError: name 'xrange' is not defined
Comparing result with correct version
Comparison failed
Test finished in 0.10088634490966797ms

+++++++++++++++++++++++++++++++++++++++
Running test module: *comp*
+++++++++++++++++++++++++++++++++++++++
Desugaring and running test file: basic.py
Traceback (most recent call last):
  File "./pyscribe/pyscribe.py", line 387, in <module>
    main()
  File "./pyscribe/pyscribe.py", line 373, in main
    program_ast)
  File "./pyscribe/pyscribe.py", line 183, in gen_desugared
    program_ast)  # don't want to include \n
  File "./pyscribe/pyscribe.py", line 233, in desugar_line
    desugared_line = self.iterscribe(line, line_num, indentation, program_ast)
  File "./pyscribe/pyscribe.py", line 289, in iterscribe
    indentation))
  File "./pyscribe/pyscribe.py", line 268, in iter_start
    text +
  File "/home/tschuy/PyScribe/pyscribe/utils.py", line 6, in draw_line
    for _ in xrange(40):
NameError: name 'xrange' is not defined
Comparing result with correct version
Comparison failed
Test finished in 0.1149744987487793ms

-----Finished running all tests-----

(pyscribe)tschuy@tschuy-laptop:~/PyScribe$ 

I'm going to work on this for a bit, and make a pull request to update the tests and any issues I find in PyScribe with Py3.