Commit 00704e0a authored by Raphael Boidol's avatar Raphael Boidol

cli should be able to write bytes to the output in python 3, too

parent 0b0e8809
import argparse import argparse
import inspect
from wordcloud import wordcloud_cli as cli from wordcloud import wordcloud_cli as cli
import wordcloud as wc import wordcloud as wc
from collections import namedtuple from collections import namedtuple
...@@ -31,22 +30,12 @@ def all_arguments(): ...@@ -31,22 +30,12 @@ def all_arguments():
return arguments return arguments
def test_argument_spec_matches_to_constructor_args():
args = argparse.Namespace()
for option in all_arguments():
setattr(args, option.init_name, option.pass_value)
supported_args = inspect.getargspec(wc.WordCloud.__init__).args
supported_args.remove('self')
for arg_name in vars(args).keys():
assert_in(arg_name, supported_args)
def test_main_passes_arguments_through(): def test_main_passes_arguments_through():
args = argparse.Namespace() args = argparse.Namespace()
for option in all_arguments(): for option in all_arguments():
setattr(args, option.init_name, option.pass_value) setattr(args, option.init_name, option.pass_value)
args.imagefile = NamedTemporaryFile() args.imagefile = NamedTemporaryFile()
args.imagefile.buffer = MagicMock()
args.text = 'some long text' args.text = 'some long text'
with patch('wordcloud.wordcloud_cli.wc.WordCloud', autospec=True) as mock_word_cloud: with patch('wordcloud.wordcloud_cli.wc.WordCloud', autospec=True) as mock_word_cloud:
......
...@@ -10,7 +10,6 @@ import argparse ...@@ -10,7 +10,6 @@ import argparse
import wordcloud as wc import wordcloud as wc
import numpy as np import numpy as np
import sys import sys
import io
from PIL import Image from PIL import Image
def main(args): def main(args):
...@@ -20,10 +19,9 @@ def main(args): ...@@ -20,10 +19,9 @@ def main(args):
color_func=args.color_func, background_color=args.background_color).generate(args.text) color_func=args.color_func, background_color=args.background_color).generate(args.text)
image = wordcloud.to_image() image = wordcloud.to_image()
b = io.BytesIO()
image.save(b, format='png')
with args.imagefile: with args.imagefile:
args.imagefile.write(b.getvalue()) out = args.imagefile if sys.version < '3' else args.imagefile.buffer
image.save(out, format='png')
def parse_args(arguments): def parse_args(arguments):
prog = 'python wordcloud_cli.py' prog = 'python wordcloud_cli.py'
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment