Remove the nose dependency from SQS unit tests.
Remove nose.plugins.attrib.attr imports and @attr(sqs=True)
decorators from SQS test modules. These decorators are only used
for nose-specific test selection and are not required when running
the tests with the standard library unittest runner.
--- ../tests/unit/sqs/test_connection.py	2026-10-18 00:49:29.009886666 +0300
+++ ../tests/unit/sqs/test_connection.py	2026-10-18 00:50:02.388961784 +0300
@@ -32,7 +32,6 @@
 from boto.sqs.queue import Queue
 from boto.connection import AWSQueryConnection
 
-from nose.plugins.attrib import attr
 
 class SQSAuthParams(AWSMockServiceTestCase):
     connection_class = SQSConnection
@@ -53,7 +52,6 @@
               </ResponseMetadata>
             </CreateQueueResponse>"""
 
-    @attr(sqs=True)
     def test_auth_service_name_override(self):
         self.set_http_response(status_code=200)
         # We can use the auth_service_name to change what service
@@ -65,7 +63,6 @@
         self.assertIn('us-east-1/service_override/aws4_request',
                       self.actual_request.headers['Authorization'])
 
-    @attr(sqs=True)
     def test_class_attribute_can_set_service_name(self):
         self.set_http_response(status_code=200)
         # The SQS class has an 'AuthServiceName' param of 'sqs':
@@ -77,7 +74,6 @@
         self.assertIn('us-east-1/sqs/aws4_request',
                       self.actual_request.headers['Authorization'])
 
-    @attr(sqs=True)
     def test_auth_region_name_is_automatically_updated(self):
         region = SQSRegionInfo(name='us-west-2',
                                endpoint='us-west-2.queue.amazonaws.com')
@@ -95,7 +91,6 @@
         self.assertIn('us-west-2/sqs/aws4_request',
                       self.actual_request.headers['Authorization'])
 
-    @attr(sqs=True)
     def test_set_get_auth_service_and_region_names(self):
         self.service_connection.auth_service_name = 'service_name'
         self.service_connection.auth_region_name = 'region_name'
@@ -104,7 +99,6 @@
                          'service_name')
         self.assertEqual(self.service_connection.auth_region_name, 'region_name')
 
-    @attr(sqs=True)
     def test_get_queue_with_owner_account_id_returns_queue(self):
 
         self.set_http_response(status_code=200)
@@ -128,7 +122,6 @@
             }
         }
 
-    @attr(sqs=True)
     def test_profile_name_gets_passed(self):
 
         region = SQSRegionInfo(name='us-west-2',
@@ -176,7 +169,6 @@
     </ResponseMetadata>
 </ReceiveMessageResponse>"""
 
-    @attr(sqs=True)
     def test_message_attribute_response(self):
         self.set_http_response(status_code=200)
 
@@ -221,7 +213,6 @@
 </SendMessageResponse>
 """
 
-    @attr(sqs=True)
     def test_send_message_attributes(self):
         self.set_http_response(status_code=200)
 
@@ -277,7 +268,6 @@
 </SendMessageBatchResponse>
 """
 
-    @attr(sqs=True)
     def test_send_message_attributes(self):
         self.set_http_response(status_code=200)
 
--- ../tests/unit/sqs/test_message.py	2026-10-18 00:49:43.228444711 +0300
+++ ../tests/unit/sqs/test_message.py	2026-10-18 00:50:02.388181101 +0300
@@ -27,11 +27,9 @@
 from boto.sqs.bigmessage import BigMessage
 from boto.exception import SQSDecodeError
 
-from nose.plugins.attrib import attr
 
 class TestMHMessage(unittest.TestCase):
 
-    @attr(sqs=True)
     def test_contains(self):
         msg = MHMessage()
         msg.update({'hello': 'world'})
@@ -40,13 +38,11 @@
 
 class DecodeExceptionRaisingMessage(RawMessage):
 
-    @attr(sqs=True)
     def decode(self, message):
         raise SQSDecodeError('Sample decode error', self)
 
 class TestEncodeMessage(unittest.TestCase):
 
-    @attr(sqs=True)
     def test_message_id_available(self):
         import xml.sax
         from boto.resultset import ResultSet
@@ -70,14 +66,12 @@
         self.assertEquals(message.id, sample_value)
         self.assertEquals(message.receipt_handle, sample_value)
 
-    @attr(sqs=True)
     def test_encode_bytes_message(self):
         message = Message()
         body = b'\x00\x01\x02\x03\x04\x05'
         message.set_body(body)
         self.assertEqual(message.get_body_encoded(), 'AAECAwQF')
 
-    @attr(sqs=True)
     def test_encode_string_message(self):
         message = Message()
         body = 'hello world'
@@ -87,7 +81,6 @@
 
 class TestBigMessage(unittest.TestCase):
 
-    @attr(sqs=True)
     def test_s3url_parsing(self):
         msg = BigMessage()
         # Try just a bucket name
--- ../tests/unit/sqs/test_queue.py	2026-10-18 00:49:35.072706136 +0300
+++ ../tests/unit/sqs/test_queue.py	2026-10-18 00:50:02.388710958 +0300
@@ -24,11 +24,9 @@
 
 from boto.sqs.queue import Queue
 
-from nose.plugins.attrib import attr
 
 class TestQueue(unittest.TestCase):
 
-    @attr(sqs=True)
     def test_queue_arn(self):
         connection = Mock()
         connection.region.name = 'us-east-1'
@@ -37,7 +35,6 @@
             url='https://sqs.us-east-1.amazonaws.com/id/queuename')
         self.assertEqual(q.arn, 'arn:aws:sqs:us-east-1:id:queuename')
 
-    @attr(sqs=True)
     def test_queue_name(self):
         connection = Mock()
         connection.region.name = 'us-east-1'
