EvaluationEfficiencyOptimiz.../davisAPI/PyWeather/weather/services/tests/test_file.py

61 lines
1.6 KiB
Python

import builtins
import unittest
from mock import Mock, patch, mock_open
from ..file import TextFile
class TestPublish(unittest.TestCase):
F = TextFile('output.txt')
def test_set(self):
self.F.set(a=1, b=2, c=3)
self.assertEqual(self.F.args, {'a': 1, 'b': 2, 'c': 3})
self.F.set(c=1, d=2, e=3)
self.assertEqual(self.F.args, {'c': 1, 'd': 2, 'e': 3})
def test_positional_set(self):
self.assertRaises(TypeError, self.F.set, 1, 2, 3)
def test_single_value(self):
m = mock_open()
with patch.object(builtins, 'open', m):
self.F.set(a=1)
self.F.publish()
m.assert_called()
handle = m()
handle.write.assert_called_with('a 1\n')
def test_string_value(self):
m = mock_open()
with patch.object(builtins, 'open', m):
self.F.set(a='string arg')
self.F.publish()
m.assert_called()
handle = m()
handle.write.assert_called_with("a 'string arg'\n")
def test_list_value(self):
m = mock_open()
with patch.object(builtins, 'open', m):
self.F.set(a=[1, 2, 3])
self.F.publish()
m.assert_called()
handle = m()
handle.write.assert_called_with("a 1 2 3\n")
def test_double_list_value(self):
m = mock_open()
with patch.object(builtins, 'open', m):
self.F.set(a=[['a', 'b', 'c'], 2, 3])
self.F.publish()
m.assert_called()
handle = m()
handle.write.assert_called_with("a 'a' 'b' 'c' 2 3\n")