11import logging
22import os
33import time
4- from mock import patch
5- import pytest
6- import kafka .codec
74
5+ from mock import patch
86import pytest
9- from kafka .vendor .six .moves import range
107from kafka .vendor import six
8+ from kafka .vendor .six .moves import range
119
1210from . import unittest
1311from kafka import (
1412 KafkaConsumer , MultiProcessConsumer , SimpleConsumer , create_message ,
1513 create_gzip_message , KafkaProducer
1614)
15+ import kafka .codec
1716from kafka .consumer .base import MAX_FETCH_BUFFER_SIZE_BYTES
1817from kafka .errors import (
1918 ConsumerFetchSizeTooSmall , OffsetOutOfRangeError , UnsupportedVersionError ,
2322 ProduceRequestPayload , TopicPartition , OffsetAndTimestamp
2423)
2524
26- from test .fixtures import ZookeeperFixture , KafkaFixture , random_string , version
27- from test .testutil import KafkaIntegrationTestCase , kafka_versions , Timer
25+ from test .fixtures import ZookeeperFixture , KafkaFixture
26+ from test .testutil import KafkaIntegrationTestCase , Timer , env_kafka_version , random_string
2827
2928
30- @pytest .mark .skipif (not version (), reason = "No KAFKA_VERSION set" )
29+ @pytest .mark .skipif (not env_kafka_version (), reason = "No KAFKA_VERSION set" )
3130def test_kafka_consumer (kafka_producer , topic , kafka_consumer_factory ):
3231 """Test KafkaConsumer"""
3332 kafka_consumer = kafka_consumer_factory (auto_offset_reset = 'earliest' )
@@ -54,7 +53,7 @@ def test_kafka_consumer(kafka_producer, topic, kafka_consumer_factory):
5453 kafka_consumer .close ()
5554
5655
57- @pytest .mark .skipif (not version (), reason = "No KAFKA_VERSION set" )
56+ @pytest .mark .skipif (not env_kafka_version (), reason = "No KAFKA_VERSION set" )
5857def test_kafka_consumer_unsupported_encoding (
5958 topic , kafka_producer_factory , kafka_consumer_factory ):
6059 # Send a compressed message
@@ -211,7 +210,7 @@ def test_simple_consumer_no_reset(self):
211210 with self .assertRaises (OffsetOutOfRangeError ):
212211 consumer .get_message ()
213212
214- @kafka_versions ( '>=0.8.1' )
213+ @pytest . mark . skipif ( not env_kafka_version (), reason = "No KAFKA_VERSION set" )
215214 def test_simple_consumer_load_initial_offsets (self ):
216215 self .send_messages (0 , range (0 , 100 ))
217216 self .send_messages (1 , range (100 , 200 ))
@@ -388,7 +387,7 @@ def test_multi_proc_pending(self):
388387 consumer .stop ()
389388
390389 @unittest .skip ('MultiProcessConsumer deprecated and these tests are flaky' )
391- @kafka_versions ( '>=0.8.1' )
390+ @pytest . mark . skipif ( not env_kafka_version (), reason = "No KAFKA_VERSION set" )
392391 def test_multi_process_consumer_load_initial_offsets (self ):
393392 self .send_messages (0 , range (0 , 10 ))
394393 self .send_messages (1 , range (10 , 20 ))
@@ -459,7 +458,7 @@ def test_huge_messages(self):
459458
460459 big_consumer .stop ()
461460
462- @kafka_versions ( '>=0.8.1' )
461+ @pytest . mark . skipif ( not env_kafka_version (), reason = "No KAFKA_VERSION set" )
463462 def test_offset_behavior__resuming_behavior (self ):
464463 self .send_messages (0 , range (0 , 100 ))
465464 self .send_messages (1 , range (100 , 200 ))
@@ -491,7 +490,7 @@ def test_offset_behavior__resuming_behavior(self):
491490 consumer2 .stop ()
492491
493492 @unittest .skip ('MultiProcessConsumer deprecated and these tests are flaky' )
494- @kafka_versions ( '>=0.8.1' )
493+ @pytest . mark . skipif ( not env_kafka_version (), reason = "No KAFKA_VERSION set" )
495494 def test_multi_process_offset_behavior__resuming_behavior (self ):
496495 self .send_messages (0 , range (0 , 100 ))
497496 self .send_messages (1 , range (100 , 200 ))
@@ -548,6 +547,7 @@ def test_fetch_buffer_size(self):
548547 messages = [ message for message in consumer ]
549548 self .assertEqual (len (messages ), 2 )
550549
550+ @pytest .mark .skipif (not env_kafka_version (), reason = "No KAFKA_VERSION set" )
551551 def test_kafka_consumer__blocking (self ):
552552 TIMEOUT_MS = 500
553553 consumer = self .kafka_consumer (auto_offset_reset = 'earliest' ,
@@ -586,7 +586,7 @@ def test_kafka_consumer__blocking(self):
586586 self .assertGreaterEqual (t .interval , TIMEOUT_MS / 1000.0 )
587587 consumer .close ()
588588
589- @kafka_versions ( '>= 0.8.1' )
589+ @pytest . mark . skipif ( env_kafka_version () < ( 0 , 8 , 1 ), reason = "Requires KAFKA_VERSION >= 0.8.1" )
590590 def test_kafka_consumer__offset_commit_resume (self ):
591591 GROUP_ID = random_string (10 )
592592
@@ -605,7 +605,7 @@ def test_kafka_consumer__offset_commit_resume(self):
605605 output_msgs1 = []
606606 for _ in range (180 ):
607607 m = next (consumer1 )
608- output_msgs1 .append (m )
608+ output_msgs1 .append (( m . key , m . value ) )
609609 self .assert_message_count (output_msgs1 , 180 )
610610 consumer1 .close ()
611611
@@ -621,12 +621,12 @@ def test_kafka_consumer__offset_commit_resume(self):
621621 output_msgs2 = []
622622 for _ in range (20 ):
623623 m = next (consumer2 )
624- output_msgs2 .append (m )
624+ output_msgs2 .append (( m . key , m . value ) )
625625 self .assert_message_count (output_msgs2 , 20 )
626626 self .assertEqual (len (set (output_msgs1 ) | set (output_msgs2 )), 200 )
627627 consumer2 .close ()
628628
629- @kafka_versions ( '>= 0.10.1' )
629+ @pytest . mark . skipif ( env_kafka_version () < ( 0 , 10 , 1 ), reason = "Requires KAFKA_VERSION >= 0.10.1" )
630630 def test_kafka_consumer_max_bytes_simple (self ):
631631 self .send_messages (0 , range (100 , 200 ))
632632 self .send_messages (1 , range (200 , 300 ))
@@ -647,7 +647,7 @@ def test_kafka_consumer_max_bytes_simple(self):
647647 TopicPartition (self .topic , 0 ), TopicPartition (self .topic , 1 )]))
648648 consumer .close ()
649649
650- @kafka_versions ( '>= 0.10.1' )
650+ @pytest . mark . skipif ( env_kafka_version () < ( 0 , 10 , 1 ), reason = "Requires KAFKA_VERSION >= 0.10.1" )
651651 def test_kafka_consumer_max_bytes_one_msg (self ):
652652 # We send to only 1 partition so we don't have parallel requests to 2
653653 # nodes for data.
@@ -673,7 +673,7 @@ def test_kafka_consumer_max_bytes_one_msg(self):
673673 self .assertEqual (len (fetched_msgs ), 10 )
674674 consumer .close ()
675675
676- @kafka_versions ( '>= 0.10.1' )
676+ @pytest . mark . skipif ( env_kafka_version () < ( 0 , 10 , 1 ), reason = "Requires KAFKA_VERSION >= 0.10.1" )
677677 def test_kafka_consumer_offsets_for_time (self ):
678678 late_time = int (time .time ()) * 1000
679679 middle_time = late_time - 1000
@@ -727,7 +727,7 @@ def test_kafka_consumer_offsets_for_time(self):
727727 })
728728 consumer .close ()
729729
730- @kafka_versions ( '>= 0.10.1' )
730+ @pytest . mark . skipif ( env_kafka_version () < ( 0 , 10 , 1 ), reason = "Requires KAFKA_VERSION >= 0.10.1" )
731731 def test_kafka_consumer_offsets_search_many_partitions (self ):
732732 tp0 = TopicPartition (self .topic , 0 )
733733 tp1 = TopicPartition (self .topic , 1 )
@@ -766,15 +766,15 @@ def test_kafka_consumer_offsets_search_many_partitions(self):
766766 })
767767 consumer .close ()
768768
769- @kafka_versions ( '< 0.10.1' )
769+ @pytest . mark . skipif ( env_kafka_version () >= ( 0 , 10 , 1 ), reason = "Requires KAFKA_VERSION < 0.10.1" )
770770 def test_kafka_consumer_offsets_for_time_old (self ):
771771 consumer = self .kafka_consumer ()
772772 tp = TopicPartition (self .topic , 0 )
773773
774774 with self .assertRaises (UnsupportedVersionError ):
775775 consumer .offsets_for_times ({tp : int (time .time ())})
776776
777- @kafka_versions ( '>= 0.10.1' )
777+ @pytest . mark . skipif ( env_kafka_version () < ( 0 , 10 , 1 ), reason = "Requires KAFKA_VERSION >= 0.10.1" )
778778 def test_kafka_consumer_offsets_for_times_errors (self ):
779779 consumer = self .kafka_consumer (fetch_max_wait_ms = 200 ,
780780 request_timeout_ms = 500 )
0 commit comments