Merge pull request #14 from cgaonker/master

Fixes for IGMP and DHCP test cases
diff --git a/src/test/dhcp/dhcpTest.py b/src/test/dhcp/dhcpTest.py
index cc7b0e0..5bab4db 100644
--- a/src/test/dhcp/dhcpTest.py
+++ b/src/test/dhcp/dhcpTest.py
@@ -163,7 +163,6 @@
 
 
     def test_dhcp_starvation(self, iface = 'veth0'):
-        '''DHCP starve'''
         config = {'startip':'182.17.0.20', 'endip':'182.17.0.69', 
                   'ip':'182.17.0.2', 'mac': "ca:fe:c3:fe:ca:fe",
                   'subnet': '255.255.255.0', 'broadcast':'182.17.0.255', 'router':'182.17.0.1'}
@@ -180,7 +179,6 @@
 
 
     def test_dhcp_same_client_multiple_discover(self, iface = 'veth0'):
-	''' DHCP Client sending multiple discover . '''
 	config = {'startip':'10.10.10.20', 'endip':'10.10.10.69', 
                  'ip':'10.10.10.2', 'mac': "ca:fe:ca:fe:ca:fe",
                  'subnet': '255.255.255.0', 'broadcast':'10.10.10.255', 'router':'10.10.10.1'}
@@ -201,7 +199,6 @@
 
 
     def test_dhcp_same_client_multiple_request(self, iface = 'veth0'):
-	''' DHCP Client sending multiple repeat DHCP requests. '''
 	config = {'startip':'10.10.10.20', 'endip':'10.10.10.69', 
                  'ip':'10.10.10.2', 'mac': "ca:fe:ca:fe:ca:fe",
                  'subnet': '255.255.255.0', 'broadcast':'10.10.10.255', 'router':'10.10.10.1'}
@@ -225,7 +222,6 @@
 		print "Something went wrong."	
     
     def test_dhcp_client_desired_address(self, iface = 'veth0'):
-	'''DHCP Client asking for desired IP address.'''
 	config = {'startip':'20.20.20.30', 'endip':'20.20.20.69', 
                  'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
                  'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
@@ -245,7 +241,6 @@
 		
 		
     def test_dhcp_client_desired_address_out_of_pool(self, iface = 'veth0'):
-	'''DHCP Client asking for desired IP address from out of pool.'''
 	config = {'startip':'20.20.20.30', 'endip':'20.20.20.69', 
                  'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
                  'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
@@ -270,7 +265,6 @@
 	
 			
     def test_dhcp_server_nak_packet(self, iface = 'veth0'):
-	''' Client sends DHCP Request for ip that is different from DHCP offer packet.'''
 	config = {'startip':'20.20.20.30', 'endip':'20.20.20.69', 
                  'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
                  'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
@@ -293,7 +287,6 @@
 		
 	
     def test_dhcp_lease_packet(self, iface = 'veth0'):
-	''' Client sends DHCP Discover packet for particular lease time.'''
 	config = {'startip':'20.20.20.30', 'endip':'20.20.20.69', 
                  'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
                  'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
@@ -312,7 +305,6 @@
 		assert_not_equal(lval, 700)
 
     def test_dhcp_client_request_after_reboot(self, iface = 'veth0'):
-	#''' Client sends DHCP Request after reboot.'''
 	
 	config = {'startip':'20.20.20.30', 'endip':'20.20.20.69', 
                  'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
@@ -352,7 +344,6 @@
 	
      
     def test_dhcp_server_after_reboot(self, iface = 'veth0'):
-	''' DHCP server goes down.'''
 	config = {'startip':'20.20.20.30', 'endip':'20.20.20.69', 
                  'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
                  'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
@@ -407,7 +398,6 @@
 		
 
     def test_dhcp_specific_lease_packet(self, iface = 'veth0'):
-	''' Client sends DHCP Discover packet for particular lease time.'''
 	config = {'startip':'20.20.20.30', 'endip':'20.20.20.69', 
                  'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
                  'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
@@ -433,7 +423,6 @@
 
 		
     def test_dhcp_lease_packet(self, iface = 'veth0'):
-	''' Client checks lease time is 600 secs/10 mins or not.'''
 	config = {'startip':'20.20.20.30', 'endip':'20.20.20.69', 
                  'ip':'20.20.20.2', 'mac': "ca:fe:ca:fe:ca:fe",
                  'subnet': '255.255.255.0', 'broadcast':'20.20.20.255', 'router':'20.20.20.1'}
diff --git a/src/test/igmp/igmpTest.py b/src/test/igmp/igmpTest.py
index be28331..3bad41a 100644
--- a/src/test/igmp/igmpTest.py
+++ b/src/test/igmp/igmpTest.py
@@ -385,22 +385,20 @@
           log.debug('Returning from recv task')
 
     def igmp_not_recv_task(self, intf, groups, join_state):
-          global NEGATIVE_TRAFFIC_STATUS
           recv_socket = L2Socket(iface = intf, type = ETH_P_IP)
           group_map = {}
           for g in groups:
                 group_map[g] = [0,0]
 
           log.info('Verifying join interface should not receive any multicast data')
-          NEGATIVE_TRAFFIC_STATUS = 1
+          self.NEGATIVE_TRAFFIC_STATUS = 1
           def igmp_recv_cb(pkt):
                 log.info('Multicast packet %s received for left groups %s' %(pkt[IP].dst, groups))
-                global NEGATIVE_TRAFFIC_STATUS
-                NEGATIVE_TRAFFIC_STATUS = 2
+                self.NEGATIVE_TRAFFIC_STATUS = 2
           sniff(prn = igmp_recv_cb, count = 1, lfilter = lambda p: IP in p and p[IP].dst in groups,
                 timeout = 3, opened_socket = recv_socket)
           recv_socket.close()
-          return NEGATIVE_TRAFFIC_STATUS 
+          return self.NEGATIVE_TRAFFIC_STATUS 
 
     def group_latency_check(self, groups):
           tasks = []
@@ -435,8 +433,6 @@
 
           
     def test_igmp_join_rover(self):
-          '''Keep sending joins across multicast range of addresses'''
-          '''For now, restricting it to 50/100'''
           s = (224 << 24) | 1
           #e = (225 << 24) | (255 << 16) | (255 << 16) | 255
           e = (224 << 24) | 10
@@ -480,6 +476,7 @@
         ip = IP(dst = g2, src = src_ip)
         log.info('Sending join message for group %s' %g2)
         self.send_igmp_join((g2,), src_list = sourcelist2, ip_pkt = eth/ip, iface = intf, delay = 2)
+        log.info('Done with igmp_send_joins_different_groups_srclist')
 
     def igmp_send_joins_different_groups_srclist_wait_query_packets(self, groups, sources, intf = V_INF1, delay = 2, ip_src = None, query_group1 = None, query_group2 = None):
         g1 = groups[0]
@@ -560,7 +557,6 @@
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+20)
     def test_igmp_2joins_1leave_functionality(self):
-        ## '''This test is subscribing to two channels and sending leave for one channel'''
         df = defer.Deferred()
         def test_igmp_2joins_1leave():
               self.igmp_joins_leave_functionality(again_join = False, df = df)
@@ -570,7 +566,6 @@
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+25)
     def test_igmp_2joins_1leave_again_joins_functionality(self):
-        ## '''This test is subscribing to two channels and sending leave for one channel,again join to the same group'''
         df = defer.Deferred()
         def test_igmp_2joins_1leave_join_again():
               self.igmp_joins_leave_functionality(again_join = True, df = df)
@@ -579,7 +574,6 @@
         return df
 
     def igmp_not_in_src_list_functionality(self, df = None):
-        ## '''This test is sending multicast data from source 6.6.6.6 which is not in joins report '''
         groups1 = (self.MGROUP1,)
         groups2 = (self.MGROUP2,)
         self.igmp_send_joins_different_groups_srclist(groups1 + groups2,
@@ -597,14 +591,13 @@
         join_state1 = IGMPTestState(groups = groups1)
         log.info('Interface should not receive from multicast groups %s from an interface, which is expected' %groups1)
         target1 = self.igmp_not_recv_task(self.V_INF1, groups1, join_state1)
-        assert target1 == 1, 'EXPECTED FAILURE'
+        assert target1 == 2, 'EXPECTED FAILURE'
         log.info('Interface is not receiving from multicast groups %s, working as expected' %groups1)
         mcastTraffic1.stop()
         self.onos_ctrl.deactivate()
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+20)
     def test_igmp_not_in_src_list_functionality(self):
-        ## '''This test is sending multicast data from source 6.6.6.6 which is not in joins report '''
         df = defer.Deferred()
         def igmp_not_in_src_list_functionality():
               self.igmp_not_in_src_list_functionality(df = df)
@@ -631,14 +624,13 @@
         target1 = self.igmp_recv_task(self.V_INF1, groups1, join_state1)
         self.send_igmp_leave(groups = groups1, src_list = ['2.2.2.2'], iface = self.V_INF1, delay =2)
         target2 = self.igmp_not_recv_task(self.V_INF1, groups1, join_state1)
-        assert target2 == 1, 'EXPECTED FAILURE'
+        assert target2 == 2, 'EXPECTED FAILURE'
         log.info('Interface is not receiving from multicast groups %s after sending CHANGE_TO_EXCLUDE' %groups1)
         mcastTraffic1.stop()
         self.onos_ctrl.deactivate()
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+10)
     def test_igmp_change_to_exclude_src_list_functionality(self):
-        ## '''This test is checking that change to exclude source list functionality '''
         df = defer.Deferred()
         def igmp_change_to_exclude_src_list_functionality():
               self.igmp_change_to_exclude_src_list_functionality(df = df)
@@ -672,7 +664,6 @@
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+30)
     def test_igmp_include_to_allow_src_list_functionality(self):
-        '''Verify join INCLUDE (A) and Allow(B) from both A and B source list should receive multicast traffic. '''
         df = defer.Deferred()
         def igmp_include_to_allow_src_list_functionality():
               self.igmp_include_to_allow_src_list_functionality(df = df)
@@ -706,7 +697,6 @@
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+30)
     def test_igmp_include_to_block_src_list_functionality(self):
-        '''Verify join INCLUDE (A) and Block(B) from A source list, should receive multicast traffic.'''
         df = defer.Deferred()
         def igmp_include_to_block_src_list_functionality():
               self.igmp_include_to_block_src_list_functionality(df = df)
@@ -744,7 +734,6 @@
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+10)
     def test_igmp_change_to_include_src_list_functionality(self):
-        ## '''This test is checking that change to include source list functionality '''
         df = defer.Deferred()
         def igmp_change_to_include_src_list_functionality():
               self.igmp_change_to_include_src_list_functionality(df = df)
@@ -782,7 +771,6 @@
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+10)
     def test_igmp_exclude_to_allow_src_list_functionality(self):
-        '''Verify join EXCLUDE(A) and Allow(B) from both A and B source list, should receive multicast traffic. '''
         df = defer.Deferred()
         def igmp_exclude_to_allow_src_list_functionality():
               self.igmp_exclude_to_allow_src_list_functionality(df = df)
@@ -819,7 +807,6 @@
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+10)
     def test_igmp_exclude_to_block_src_list_functionality(self):
-        ''' Verify join EXCLUDE (A) and Block(B) from A source list, should receive multicast traffic. '''
         df = defer.Deferred()
         def igmp_exclude_to_block_src_list_functionality():
               self.igmp_exclude_to_block_src_list_functionality(df = df)
@@ -856,7 +843,6 @@
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+10)
     def test_igmp_new_src_list_functionality(self):
-        ## '''This test is checking that adding new source list to existing source list functionality '''
         df = defer.Deferred()
         def igmp_new_src_list_functionality():
               self.igmp_new_src_list_functionality(df = df)
@@ -887,14 +873,13 @@
                                                       (['6.6.6.6', '3.3.3.3', '4.4.4.4'], ['2.2.2.2', '7.7.7.7']),
                                                       intf = self.V_INF1, delay = 2)
         target2 = self.igmp_not_recv_task(self.V_INF1, groups2, join_state1)
-        assert target2 == 1, 'EXPECTED FAILURE'
+        assert target2 == 2, 'EXPECTED FAILURE'
         log.info('Interface is not receiving from multicast groups %s after sending join with block old source list' %groups2)
         mcastTraffic1.stop()
         self.onos_ctrl.deactivate()
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+20)
     def test_igmp_block_old_src_list_functionality(self):
-        ## '''This test is checking that block old source list from existing source list functionality '''
         df = defer.Deferred()
         def igmp_block_old_src_list_functionality():
               self.igmp_block_old_src_list_functionality(df = df)
@@ -927,7 +912,6 @@
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+20)
     def ztest_igmp_include_empty_src_list_functionality(self):
-        ## '''This test is checking that multicast functionality by sending empty source list to include  '''
         ## '''Disabling this test as scapy IGMP doesn't work with empty source lists'''
         df = defer.Deferred()
         def igmp_include_empty_src_list_functionality():
@@ -958,8 +942,6 @@
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+20)
     def ztest_igmp_exclude_empty_src_list_functionality(self):
-        ## '''This test is checking that multicast functionality by sending empty source list to exclude  '''
-        ## '''Disabling this test case since scapy IGMP doesn't work with empty src list'''
         df = defer.Deferred()
         def igmp_exclude_empty_src_list_functionality():
               self.igmp_exclude_empty_src_list_functionality()
@@ -993,7 +975,6 @@
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+20)
     def test_igmp_join_sourceip_0_0_0_0_functionality(self):
-        ## '''This test is sending join with source list A,B,C and exclude D,F,G with source IP as 0.0.0.0'''
         df = defer.Deferred()
         def igmp_join_sourceip_0_0_0_0_functionality():
               self.igmp_join_sourceip_0_0_0_0_functionality(df = df)
@@ -1029,7 +1010,6 @@
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+20)
     def test_igmp_invalid_join_packet_functionality(self):
-        ## '''This test is sending invalid join with source list A,B,C and exclude D,F,G with multicast group as 255.255.255.255'''
         df = defer.Deferred()
         def igmp_invalid_join_packet_functionality():
               self.igmp_invalid_join_packet_functionality(df = df)
@@ -1072,7 +1052,6 @@
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+20)
     def test_igmp_join_data_receiving_during_subscriber_link_up_down_functionality(self):
-        ## '''This test is sending join with source list A,B,C and exclude D,F,G with valid multicast group during receiving data, shutdown on data receiving port'''
         df = defer.Deferred()
         def igmp_join_data_receiving_during_subscriber_link_up_down_functionality():
               self.igmp_join_data_receiving_during_subscriber_link_down_up_functionality(df = df)
@@ -1136,8 +1115,7 @@
     ##  This test case is failing to receive traffic from multicast data from defferent channel interfaces TO-DO
     ###### TO DO scenario #######
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+60)
-    def ztest_igmp_join_data_receiving_during_channel_distributor_link_down_up_functionality(self):
-        ## '''This test is sending join with source list A,B,C with valid multicast group during receiving data, shutdown the data sending port'''
+    def test_igmp_join_data_receiving_during_channel_distributor_link_down_up_functionality(self):
         df = defer.Deferred()
         def igmp_join_data_receiving_during_channel_distributor_link_down_up_functionality():
               self.igmp_join_data_receiving_during_channel_distributor_link_down_up_functionality(df = df)
@@ -1172,7 +1150,6 @@
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+20)
     def test_igmp_invalidClassD_IP_join_packet_functionality(self):
-        ## '''This test is sending invalid join with source list A,B,C with multicast group as 239.255.255.255'''
         df = defer.Deferred()
         def igmp_invalidClass_D_IP_join_packet_functionality():
               self.igmp_invalidClass_D_IP_join_packet_functionality(df = df)
@@ -1207,7 +1184,6 @@
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+20)
     def test_igmp_invalidClassD_IP_as_srclistIP_join_packet_functionality(self):
-        ## '''This test is sending invalid join with source list A,B,C and exclude D,F,G with source list as  239.5.5.5'''
         df = defer.Deferred()
         def igmp_invalidClassD_IP_as_srclistIP_join_packet_functionality():
               self.igmp_invalidClassD_IP_as_srclistIP_join_packet_functionality(df = df)
@@ -1260,7 +1236,6 @@
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+250)
     def test_igmp_general_query_recv_packet_traffic_functionality(self):
-        ## '''This test is verifying whether multicast data is stopped after 180 sec time if we dont respond to query packet which will generated by a querier router'''
         df = defer.Deferred()
         def igmp_general_query_recv_packet_functionality():
               self.igmp_general_query_recv_packet_functionality(df = df)
@@ -1270,7 +1245,6 @@
     
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+80)
     def test_igmp_query_packet_received_on_joining_interface(self):
-        ## '''This test is verifying whether joining interface is receiving general membership query packet from querier router '''
         groups = ['224.0.1.10', '225.0.0.10']
         leave_groups = ['224.0.1.10']
         df = defer.Deferred()
@@ -1304,7 +1278,6 @@
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+190)
     def test_igmp_periodic_query_packet_received_on_joining_interface(self):
-        ## '''This test is verifying whether joining interface is receiving periodic general membership query packets from querier router '''
         groups = ['224.0.1.10', '225.0.0.10']
         leave_groups = ['224.0.1.10']
         df = defer.Deferred()
@@ -1333,7 +1306,6 @@
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+190)
     def test_igmp_periodic_query_packet_received_and_checking_entry_deleted(self):
-        ## '''This test is verifying whether joining interface is receiving periodic general membership query packets from querier router, checking expire membership interval and traffic should not receive'''
         groups = ['224.0.1.10', '225.0.0.10']
         leave_groups = ['224.0.1.10']
         df = defer.Deferred()
@@ -1367,7 +1339,6 @@
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+190)
     def test_igmp_member_query_interval_expire_re_joining_interface(self):
-        ## '''This test is verifying whether joining interface is receiving multicast data even after group menership interval expire by sending again joining to that multicast data group'''
         groups = ['224.0.1.10', '225.0.0.10']
         leave_groups = ['224.0.1.10']
         df = defer.Deferred()
@@ -1401,7 +1372,6 @@
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+50)
     def test_igmp_leave_verify_received_group_source_specific_query(self):
-        ## '''This test is verfying when we send leave message we should get group-source specific query '''
         groups = ['224.0.1.10', '225.0.0.10']
         leave_groups = ['224.0.1.10']
         df = defer.Deferred()
@@ -1456,8 +1426,6 @@
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+60)
     def test_igmp_change_to_exclude_src_list_check_for_group_source_specific_query(self):
-        '''Verify join INCLUDE (A) and TO_EX(B) for a multicast group, 
-           we should receive group source specific membership query packet to A*B source list interface'''
         df = defer.Deferred()
         def igmp_change_to_exclude_src_list_check_for_group_source_specific_query():
               self.igmp_change_to_exclude_src_list_check_for_group_source_specific_query(df = df)
@@ -1494,8 +1462,6 @@
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+80)
     def test_igmp_change_to_include_src_list_check_for_general_query(self):
-        '''Verify join EXCLUDE (A) and TO_IN(B) for a multicast group, 
-        we should receive general membership query packet. '''
         df = defer.Deferred()
         def igmp_change_to_include_src_list_check_for_general_query():
               self.igmp_change_to_include_src_list_check_for_general_query(df = df)
@@ -1531,8 +1497,6 @@
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+80)
     def test_igmp_allow_new_src_list_check_for_general_query(self):
-        '''Verify join INCLUDE (A) and ALLOW(B) for a multicast group, we 
-           should receive general membership query packet. '''
         df = defer.Deferred()
         def igmp_allow_new_src_list_check_for_general_query():
               self.igmp_allow_new_src_list_check_for_general_query(df = df)
@@ -1570,8 +1534,6 @@
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+90)
     def test_igmp_block_old_src_list_check_for_group_source_specific_query(self):
-        """ Verify when we send join INCLUDE (A) and BLOCK(B) for a multicast group, we should receive 
-            group source specific membership query packet to A*B source list interface""" 
         df = defer.Deferred()
         def igmp_block_old_src_list_check_for_group_source_specific_query():
               self.igmp_block_old_src_list_check_for_group_source_specific_query(df = df)
@@ -1603,7 +1565,6 @@
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+40)
     def test_igmp_include_to_allow_src_list_check_for_general_query(self):
-        '''Verify join INCLUDE (A) and Allow(B) ,should receive general membership query packet '''
         df = defer.Deferred()
         def igmp_include_to_allow_src_list_check_for_general_query():
               self.igmp_include_to_allow_src_list_check_for_general_query(df = df)
@@ -1636,7 +1597,6 @@
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+40)
     def test_igmp_include_to_block_src_list_check_for_group_source_specific_query(self):
-        '''Verify join INCLUDE (A) and Block(B) ,should receive group source specific membership query packet. '''
         df = defer.Deferred()
         def igmp_include_to_block_src_list_check_for_group_source_specific_query():
               self.igmp_include_to_block_src_list_check_for_group_source_specific_query(df = df)
@@ -1673,7 +1633,6 @@
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+90)
     def test_igmp_exclude_to_allow_src_list_check_for_general_query(self):
-        '''Verify join EXCLUDE(A) and Allow(B) ,should receive general membership query packet. '''
         df = defer.Deferred()
         def igmp_exclude_to_allow_src_list_check_for_general_query():
               self.igmp_exclude_to_allow_src_list_check_for_general_query(df = df)
@@ -1711,7 +1670,6 @@
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+40)
     def test_igmp_exclude_to_block_src_list_check_for_group_source_specific_query(self):
-        '''Verify join EXCLUDE (A) and Block(B) ,should receive group source specific membership query packet.'''
         df = defer.Deferred()
         def igmp_exclude_to_block_src_list_check_for_group_source_specific_query():
               self.igmp_exclude_to_block_src_list_check_for_group_source_specific_query(df = df)