croach / Flask-Fixtures

A simple library for adding database fixtures for unit tests using nothing but JSON or YAML.
MIT License
63 stars 30 forks source link

Make log to a file instead of stdout #27

Closed mdsrosa closed 7 years ago

mdsrosa commented 7 years ago

I started using Flask-Fixtures today and I'm loving it! But the only thing I would change right now is the log output to stdout.

I prefer this output:

...........
----------------------------------------------------------------------
Ran 11 tests in 0.362s

OK

Over this one:

[INFO] setting up fixtures... in File "/Users/mrosa/.virtualenvs/.../lib/python3.5/site-packages/flask_fixtures/__init__.py", line 84, in setup
[INFO] tearing down fixtures... in File "/Users/mrosa/.virtualenvs/...//lib/python3.5/site-packages/flask_fixtures/__init__.py", line 119, in teardown
.[INFO] setting up fixtures... in File "/Users/mrosa/.virtualenvs/.../lib/python3.5/site-packages/flask_fixtures/__init__.py", line 84, in setup
[INFO] tearing down fixtures... in File "/Users/mrosa/.virtualenvs/alex-api/lib/python3.5/site-packages/flask_fixtures/__init__.py", line 119, in teardown
.[INFO] setting up fixtures... in File "/Users/mrosa/.virtualenvs/.../lib/python3.5/site-packages/flask_fixtures/__init__.py", line 84, in setup
[INFO] tearing down fixtures... in File "/Users/mrosa/.virtualenvs/.../lib/python3.5/site-packages/flask_fixtures/__init__.py", line 119, in teardown
.[INFO] setting up fixtures... in File "/Users/mrosa/.virtualenvs/.../lib/python3.5/site-packages/flask_fixtures/__init__.py", line 84, in setup
[INFO] tearing down fixtures... in File "/Users/mrosa/.virtualenvs/.../lib/python3.5/site-packages/flask_fixtures/__init__.py", line 119, in teardown
.[INFO] setting up fixtures... in File "/Users/mrosa/.virtualenvs/...lib/python3.5/site-packages/flask_fixtures/__init__.py", line 84, in setup
[INFO] tearing down fixtures... in File "/Users/mrosa/.virtualenvs/.../lib/python3.5/site-packages/flask_fixtures/__init__.py", line 119, in teardown
.[INFO] setting up fixtures... in File "/Users/mrosa/.virtualenvs/.../lib/python3.5/site-packages/flask_fixtures/__init__.py", line 84, in setup
[INFO] tearing down fixtures... in File "/Users/mrosa/.virtualenvs/.../lib/python3.5/site-packages/flask_fixtures/__init__.py", line 119, in teardown
.[INFO] setting up fixtures... in File "/Users/mrosa/.virtualenvs/.../lib/python3.5/site-packages/flask_fixtures/__init__.py", line 84, in setup
[INFO] tearing down fixtures... in File "/Users/mrosa/.virtualenvs/.../lib/python3.5/site-packages/flask_fixtures/__init__.py", line 119, in teardown
.[INFO] setting up fixtures... in File "/Users/mrosa/.virtualenvs/.../lib/python3.5/site-packages/flask_fixtures/__init__.py", line 84, in setup
[INFO] tearing down fixtures... in File "/Users/mrosa/.virtualenvs/.../lib/python3.5/site-packages/flask_fixtures/__init__.py", line 119, in teardown
.[INFO] setting up fixtures... in File "/Users/mrosa/.virtualenvs/.../lib/python3.5/site-packages/flask_fixtures/__init__.py", line 84, in setup
[INFO] tearing down fixtures... in File "/Users/mrosa/.virtualenvs/.../lib/python3.5/site-packages/flask_fixtures/__init__.py", line 119, in teardown
.[INFO] setting up fixtures... in File "/Users/mrosa/.virtualenvs/.../lib/python3.5/site-packages/flask_fixtures/__init__.py", line 84, in setup
[INFO] tearing down fixtures... in File "/Users/mrosa/.virtualenvs/.../lib/python3.5/site-packages/flask_fixtures/__init__.py", line 119, in teardown
.[INFO] setting up fixtures... in File "/Users/mrosa/.virtualenvs/.../lib/python3.5/site-packages/flask_fixtures/__init__.py", line 84, in setup
[INFO] tearing down fixtures... in File "/Users/mrosa/.virtualenvs/.../lib/python3.5/site-packages/flask_fixtures/__init__.py", line 119, in teardown
.
----------------------------------------------------------------------
Ran 11 tests in 0.353s

OK

So this PR sets the filename parameter in the logging.basicConfig() call so log messages won't mess with the output from unittest or py.test.

If there is another way to do this, please, let me know! 😉

timmartin19 commented 7 years ago

This should be solvable by setting the log level for the logger. Something like this before your tests run

import logging
flask_fixtures_logger = logging.getLogger(__name__)
log.setLevel('WARNING')

Or you can change the handlers on the log object.

mdsrosa commented 7 years ago

@timmartin19 You're right. This fixed:

from flask_fixtures import log
log.setLevel('WARNING')
...

Thanks!

I'm closing this PR.