Merge lp:~verterok/txstatsd/use-mock-instead-of-mocker into lp:txstatsd

Proposed by Guillermo Gonzalez
Status: Merged
Approved by: Sidnei da Silva
Approved revision: 105
Merged at revision: 105
Proposed branch: lp:~verterok/txstatsd/use-mock-instead-of-mocker
Merge into: lp:txstatsd
Diff against target: 339 lines (+82/-98)
3 files modified
requirements.txt (+1/-1)
txstatsd/tests/test_client.py (+24/-28)
txstatsd/tests/test_process.py (+57/-69)
To merge this branch: bzr merge lp:~verterok/txstatsd/use-mock-instead-of-mocker
Reviewer Review Type Date Requested Status
Sidnei da Silva Approve
Review via email: mp+152206@code.launchpad.net

Commit message

Use mock instead of mocker in the tests

Description of the change

Use mock (python-mock) instead of mocker (python-mocker) as there is no py3k package for the later.

To post a comment you must log in.
Revision history for this message
Sidnei da Silva (sidnei) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'requirements.txt'
--- requirements.txt 2012-05-08 16:23:00 +0000
+++ requirements.txt 2013-03-07 15:53:38 +0000
@@ -1,7 +1,7 @@
1Twisted==11.1.01Twisted==11.1.0
2carbon==0.9.92carbon==0.9.9
3whisper==0.9.93whisper==0.9.9
4mocker==1.14mock==1.0
5psutil==0.4.15psutil==0.4.1
6wsgiref==0.1.26wsgiref==0.1.2
7zope.interface==3.8.07zope.interface==3.8.0
88
=== modified file 'txstatsd/tests/test_client.py'
--- txstatsd/tests/test_client.py 2012-12-27 20:49:06 +0000
+++ txstatsd/tests/test_client.py 2013-03-07 15:53:38 +0000
@@ -22,7 +22,7 @@
2222
23import sys23import sys
2424
25from mocker import Mocker, expect, ANY25from mock import Mock, call
26from twisted.internet import reactor26from twisted.internet import reactor
27from twisted.internet.defer import inlineCallbacks, Deferred27from twisted.internet.defer import inlineCallbacks, Deferred
28from twisted.python import log28from twisted.python import log
@@ -67,7 +67,6 @@
67 super(TestClient, self).setUp()67 super(TestClient, self).setUp()
68 self.client = None68 self.client = None
69 self.exception = None69 self.exception = None
70 self.mocker = Mocker()
7170
72 def tearDown(self):71 def tearDown(self):
73 if self.client:72 if self.client:
@@ -250,11 +249,11 @@
250 self.client = TwistedStatsDClient('localhost', 8000)249 self.client = TwistedStatsDClient('localhost', 8000)
251 self.build_protocol()250 self.build_protocol()
252251
253 self.client.connect_callback = self.mocker.mock()252 self.client.connect_callback = Mock()
254 expect(self.client.connect_callback())
255253
256 with self.mocker:254 self.client.host_resolved('127.0.0.1')
257 self.client.host_resolved('127.0.0.1')255 self.assertTrue(self.client.connect_callback.called)
256 self.client.connect_callback.assert_called_once_with()
258257
259 def test_sends_messages_to_gateway_after_host_resolves(self):258 def test_sends_messages_to_gateway_after_host_resolves(self):
260 """After the host is resolved, send messages to the259 """After the host is resolved, send messages to the
@@ -265,14 +264,12 @@
265264
266 message = 'some data'265 message = 'some data'
267 bytes_sent = len(message)266 bytes_sent = len(message)
268 self.client.data_queue = self.mocker.mock(spec=DataQueue) # not called267 self.client.data_queue = Mock(spec=DataQueue)
269 self.client.transport_gateway = self.mocker.mock(spec=TransportGateway)268 self.client.transport_gateway = Mock(spec=TransportGateway)
270 callback = self.mocker.mock()269 callback = Mock()
271 expect(self.client.transport_gateway.write(message, callback)).result(270 self.client.transport_gateway.write.return_value = bytes_sent
272 bytes_sent)271 self.assertEqual(self.client.write(message, callback), bytes_sent)
273272 self.client.transport_gateway.write.assert_called_once_with(message, callback)
274 with self.mocker:
275 self.assertEqual(self.client.write(message, callback), bytes_sent)
276273
277 def test_sends_messages_to_queue_before_host_resolves(self):274 def test_sends_messages_to_queue_before_host_resolves(self):
278 """Before the host is resolved, send messages to the DataQueue."""275 """Before the host is resolved, send messages to the DataQueue."""
@@ -280,13 +277,12 @@
280 self.build_protocol()277 self.build_protocol()
281278
282 message = 'some data'279 message = 'some data'
283 bytes_sent = len(message)280 self.client.data_queue = Mock(spec=DataQueue)
284 self.client.data_queue = self.mocker.mock(spec=DataQueue)281 callback = Mock()
285 callback = self.mocker.mock()282 self.client.data_queue.write.return_value = None
286 expect(self.client.data_queue.write(message, callback)).result(None)283 result = self.client.write(message, callback)
287284 self.client.data_queue.write.assert_called_once_with(message, callback)
288 with self.mocker:285 self.assertEqual(result, None)
289 self.assertEqual(self.client.write(message, callback), None)
290286
291 def test_flushes_queued_messages_to_the_gateway_when_host_resolves(self):287 def test_flushes_queued_messages_to_the_gateway_when_host_resolves(self):
292 """As soon as the host is resolved, flush all messages to the288 """As soon as the host is resolved, flush all messages to the
@@ -298,14 +294,14 @@
298 self.client.data_queue.write('data 2', 'callback 2')294 self.client.data_queue.write('data 2', 'callback 2')
299 self.client.data_queue.write('data 3', 'callback 3')295 self.client.data_queue.write('data 3', 'callback 3')
300296
301 mock_gateway_write = self.mocker.mock()297 mock_gateway_write = Mock()
302 self.patch(TransportGateway, 'write', mock_gateway_write)298 self.patch(TransportGateway, 'write', mock_gateway_write)
303 expect(mock_gateway_write('data 1', 'callback 1'))299 self.client.host_resolved('127.0.0.1')
304 expect(mock_gateway_write('data 2', 'callback 2'))300 self.assertTrue(mock_gateway_write.call_count, 3)
305 expect(mock_gateway_write('data 3', 'callback 3'))301 expected = [call('data 1', 'callback 1'),
306302 call('data 2', 'callback 2'),
307 with self.mocker:303 call('data 3', 'callback 3')]
308 self.client.host_resolved('127.0.0.1')304 self.assertEqual(mock_gateway_write.call_args_list, expected)
309305
310 def test_sets_client_transport_when_connected(self):306 def test_sets_client_transport_when_connected(self):
311 """Set the transport as an attribute of the client."""307 """Set the transport as an attribute of the client."""
312308
=== modified file 'txstatsd/tests/test_process.py'
--- txstatsd/tests/test_process.py 2012-06-28 17:29:26 +0000
+++ txstatsd/tests/test_process.py 2013-03-07 15:53:38 +0000
@@ -23,7 +23,7 @@
23import psutil23import psutil
24import sys24import sys
2525
26from mocker import MockerTestCase26import mock
27from twisted.trial.unittest import TestCase27from twisted.trial.unittest import TestCase
2828
29from txstatsd.process import (29from txstatsd.process import (
@@ -82,7 +82,7 @@
82tun0: 5138313 24837 0 0 0 0 0 0 5226635 26986 0 0 0 0 0 0"""82tun0: 5138313 24837 0 0 0 0 0 0 5226635 26986 0 0 0 0 0 0"""
8383
8484
85class TestSystemPerformance(TestCase, MockerTestCase):85class TestSystemPerformance(TestCase):
86 """Test system performance monitoring."""86 """Test system performance monitoring."""
8787
88 def test_loadinfo(self):88 def test_loadinfo(self):
@@ -102,11 +102,10 @@
102 def test_cpu_counters(self):102 def test_cpu_counters(self):
103 """System cpu counters are collected through psutil."""103 """System cpu counters are collected through psutil."""
104 cpu_times = psutil.cpu_times()104 cpu_times = psutil.cpu_times()
105 mock = self.mocker.replace("psutil.cpu_times")105 with mock.patch("psutil.cpu_times"):
106 self.expect(mock(percpu=False)).result(cpu_times)106 psutil.cpu_times.return_value = cpu_times
107 self.mocker.replay()107 result = report_system_stats()
108108 psutil.cpu_times.assert_called_once_with(percpu=False)
109 result = report_system_stats()
110 # cpu_times is platform-dependent109 # cpu_times is platform-dependent
111 if sys.platform.lower().startswith("linux"):110 if sys.platform.lower().startswith("linux"):
112 self.assertEqual(cpu_times.user, result["sys.cpu.user"])111 self.assertEqual(cpu_times.user, result["sys.cpu.user"])
@@ -132,11 +131,10 @@
132 def test_per_cpu_counters(self):131 def test_per_cpu_counters(self):
133 """System percpu counters are collected through psutil."""132 """System percpu counters are collected through psutil."""
134 cpu_times = psutil.cpu_times()133 cpu_times = psutil.cpu_times()
135 mock = self.mocker.replace("psutil.cpu_times")134 with mock.patch("psutil.cpu_times"):
136 self.expect(mock(percpu=True)).result([cpu_times, cpu_times])135 psutil.cpu_times.return_value = [cpu_times, cpu_times]
137 self.mocker.replay()136 result = report_system_stats(percpu=True)
138137 psutil.cpu_times.assert_called_once_with(percpu=True)
139 result = report_system_stats(percpu=True)
140 # cpu_times is platform-dependent138 # cpu_times is platform-dependent
141 if sys.platform.lower().startswith("linux"):139 if sys.platform.lower().startswith("linux"):
142 self.assertEqual(cpu_times.user, result["sys.cpu.000.user"])140 self.assertEqual(cpu_times.user, result["sys.cpu.000.user"])
@@ -187,14 +185,12 @@
187 cpu_percent = process.get_cpu_percent()185 cpu_percent = process.get_cpu_percent()
188 memory_percent = process.get_memory_percent()186 memory_percent = process.get_memory_percent()
189187
190 mock = self.mocker.mock()188 proc = mock.Mock()
191 self.expect(mock.get_memory_info()).result((vsize, rss))189 proc.get_memory_info.return_value = (vsize, rss)
192 self.expect(mock.get_cpu_percent()).result(cpu_percent)190 proc.get_cpu_percent.return_value = cpu_percent
193 self.expect(mock.get_memory_percent()).result(memory_percent)191 proc.get_memory_percent.return_value = memory_percent
194 self.expect(mock.get_num_threads).result(None)192 proc.get_num_threads = None
195 self.mocker.replay()193 result = ProcessReport(process=proc).get_memory_and_cpu()
196
197 result = ProcessReport(process=mock).get_memory_and_cpu()
198 self.assertEqual(cpu_percent, result["proc.cpu.percent"])194 self.assertEqual(cpu_percent, result["proc.cpu.percent"])
199 self.assertEqual(vsize, result["proc.memory.vsize"])195 self.assertEqual(vsize, result["proc.memory.vsize"])
200 self.assertEqual(rss, result["proc.memory.rss"])196 self.assertEqual(rss, result["proc.memory.rss"])
@@ -208,11 +204,10 @@
208 process = psutil.Process(os.getpid())204 process = psutil.Process(os.getpid())
209 utime, stime = process.get_cpu_times()205 utime, stime = process.get_cpu_times()
210206
211 mock = self.mocker.mock()207 proc = mock.Mock()
212 self.expect(mock.get_cpu_times()).result((utime, stime))208 proc.get_cpu_times.return_value = (utime, stime)
213 self.mocker.replay()209 result = ProcessReport(process=proc).get_cpu_counters()
214210 proc.get_cpu_times.assert_called_once_with()
215 result = ProcessReport(process=mock).get_cpu_counters()
216 self.assertEqual(utime, result["proc.cpu.user"])211 self.assertEqual(utime, result["proc.cpu.user"])
217 self.assertEqual(stime, result["proc.cpu.system"])212 self.assertEqual(stime, result["proc.cpu.system"])
218213
@@ -229,14 +224,18 @@
229 cpu_percent = process.get_cpu_percent()224 cpu_percent = process.get_cpu_percent()
230 memory_percent = process.get_memory_percent()225 memory_percent = process.get_memory_percent()
231226
232 mock = self.mocker.mock()227 proc = mock.Mock()
233 self.expect(mock.get_memory_info()).result((vsize, rss))228 proc.get_memory_info.return_value = (vsize, rss)
234 self.expect(mock.get_cpu_percent()).result(cpu_percent)229 proc.get_cpu_percent.return_value = cpu_percent
235 self.expect(mock.get_memory_percent()).result(memory_percent)230 proc.get_memory_percent.return_value = memory_percent
236 self.expect(mock.get_num_threads()).result(1)231 proc.get_num_threads.return_value = 1
237 self.mocker.replay()232 result = ProcessReport(process=proc).get_memory_and_cpu()
238233 proc.get_memory_info.assert_called_once_with()
239 result = ProcessReport(process=mock).get_memory_and_cpu()234 proc.get_cpu_percent.assert_called_once_with()
235 proc.get_memory_percent.assert_called_once_with()
236 proc.get_num_threads.assert_called_once_with()
237
238
240 self.assertEqual(cpu_percent, result["proc.cpu.percent"])239 self.assertEqual(cpu_percent, result["proc.cpu.percent"])
241 self.assertEqual(vsize, result["proc.memory.vsize"])240 self.assertEqual(vsize, result["proc.memory.vsize"])
242 self.assertEqual(rss, result["proc.memory.rss"])241 self.assertEqual(rss, result["proc.memory.rss"])
@@ -245,13 +244,11 @@
245244
246 def test_ioinfo(self):245 def test_ioinfo(self):
247 """Process IO info is collected through psutil."""246 """Process IO info is collected through psutil."""
248 mock = self.mocker.mock()
249 self.expect(mock.get_io_counters).result(None)
250 self.mocker.replay()
251
252 # If the version of psutil doesn't have the C{get_io_counters},247 # If the version of psutil doesn't have the C{get_io_counters},
253 # then io stats are not included in the output.248 # then io stats are not included in the output.
254 result = ProcessReport(process=mock).get_io_counters()249 proc = mock.Mock()
250 proc.get_io_counters = None
251 result = ProcessReport(process=proc).get_io_counters()
255 self.failIf("proc.io.read.count" in result)252 self.failIf("proc.io.read.count" in result)
256 self.failIf("proc.io.write.count" in result)253 self.failIf("proc.io.write.count" in result)
257 self.failIf("proc.io.read.bytes" in result)254 self.failIf("proc.io.read.bytes" in result)
@@ -266,12 +263,10 @@
266 """263 """
267 io_counters = (10, 42, 125, 16)264 io_counters = (10, 42, 125, 16)
268265
269 mock = self.mocker.mock()266 proc = mock.Mock()
270 self.expect(mock.get_io_counters).result(mock)267 proc.get_io_counters.return_value = io_counters
271 self.expect(mock.get_io_counters()).result(io_counters)268 result = ProcessReport(process=proc).get_io_counters()
272 self.mocker.replay()269 proc.get_io_counters.assert_called_once_with()
273
274 result = ProcessReport(process=mock).get_io_counters()
275 self.assertEqual(10, result["proc.io.read.count"])270 self.assertEqual(10, result["proc.io.read.count"])
276 self.assertEqual(42, result["proc.io.write.count"])271 self.assertEqual(42, result["proc.io.write.count"])
277 self.assertEqual(125, result["proc.io.read.bytes"])272 self.assertEqual(125, result["proc.io.read.bytes"])
@@ -284,13 +279,11 @@
284 If the version of psutil doesn't implement C{get_connections} for279 If the version of psutil doesn't implement C{get_connections} for
285 L{Process}, then no information is returned.280 L{Process}, then no information is returned.
286 """281 """
287 mock = self.mocker.mock()
288 self.expect(mock.get_connections).result(None)
289 self.mocker.replay()
290
291 # If the version of psutil doesn't have the C{get_io_counters},282 # If the version of psutil doesn't have the C{get_io_counters},
292 # then io stats are not included in the output.283 # then io stats are not included in the output.
293 result = ProcessReport(process=mock).get_net_stats()284 proc = mock.Mock()
285 proc.get_connections = None
286 result = ProcessReport(process=proc).get_net_stats()
294 self.failIf("proc.net.status.established" in result)287 self.failIf("proc.net.status.established" in result)
295288
296 def test_netinfo_with_get_connections(self):289 def test_netinfo_with_get_connections(self):
@@ -311,37 +304,32 @@
311 ("72.14.234.83", 443), "SYN_SENT")304 ("72.14.234.83", 443), "SYN_SENT")
312 ]305 ]
313306
314 mock = self.mocker.mock()307 proc = mock.Mock()
315 self.expect(mock.get_connections).result(mock)308 proc.get_connections.return_value = connections
316 self.expect(mock.get_connections()).result(connections)309 result = ProcessReport(process=proc).get_net_stats()
317 self.mocker.replay()310 proc.get_connections.assert_called_once_with()
318
319 result = ProcessReport(process=mock).get_net_stats()
320 self.assertEqual(2, result["proc.net.status.established"])311 self.assertEqual(2, result["proc.net.status.established"])
321 self.assertEqual(1, result["proc.net.status.closing"])312 self.assertEqual(1, result["proc.net.status.closing"])
322 self.assertEqual(1, result["proc.net.status.syn_sent"])313 self.assertEqual(1, result["proc.net.status.syn_sent"])
323314
324 def test_reactor_stats(self):315 def test_reactor_stats(self):
325 """Given a twisted reactor, pull out some stats from it."""316 """Given a twisted reactor, pull out some stats from it."""
326 mock = self.mocker.mock()317 mock_reactor = mock.Mock()
327 self.expect(mock.getReaders()).result([None, None, None])318 mock_reactor.getReaders.return_value = [None, None, None]
328 self.expect(mock.getWriters()).result([None, None])319 mock_reactor.getWriters.return_value = [None, None]
329 self.mocker.replay()320 result = report_reactor_stats(mock_reactor)()
330
331 result = report_reactor_stats(mock)()
332 self.assertEqual(3, result["reactor.readers"])321 self.assertEqual(3, result["reactor.readers"])
333 self.assertEqual(2, result["reactor.writers"])322 self.assertEqual(2, result["reactor.writers"])
334323
335 def test_threadpool_stats(self):324 def test_threadpool_stats(self):
336 """Given a twisted threadpool, pull out some stats from it."""325 """Given a twisted threadpool, pull out some stats from it."""
337 mock = self.mocker.mock()326 mock_reactor = mock.Mock()
338 self.expect(mock.q.qsize()).result(42)327 mock_reactor.q.qsize.return_value = 42
339 self.expect(mock.threads).result(6 * [None])328 mock_reactor.threads = 6 * [None]
340 self.expect(mock.waiters).result(2 * [None])329 mock_reactor.waiters = 2 * [None]
341 self.expect(mock.working).result(4 * [None])330 mock_reactor.working = 4 * [None]
342 self.mocker.replay()
343331
344 result = report_threadpool_stats(mock)()332 result = report_threadpool_stats(mock_reactor)()
345 self.assertEqual(42, result["threadpool.queue"])333 self.assertEqual(42, result["threadpool.queue"])
346 self.assertEqual(6, result["threadpool.threads"])334 self.assertEqual(6, result["threadpool.threads"])
347 self.assertEqual(2, result["threadpool.waiters"])335 self.assertEqual(2, result["threadpool.waiters"])
@@ -385,5 +373,5 @@
385 self.assertEqual({"foo": 4}, wrapped())373 self.assertEqual({"foo": 4}, wrapped())
386 self.assertEqual({"foo": 5}, wrapped())374 self.assertEqual({"foo": 5}, wrapped())
387 self.assertEqual({"foo": 7}, wrapped())375 self.assertEqual({"foo": 7}, wrapped())
388 376
389377

Subscribers

People subscribed via source and target branches