예제 #1
0
    def test_not_equal_on_not_equal_signature_data(self):
        """
        Test that the inequality operator returns True when comparing two
        sign response payloads with different signature_data.
        """
        a = sign.SignResponsePayload(unique_identifier='a',
                                     signature_data=b'\x01')
        b = sign.SignResponsePayload(unique_identifier='a',
                                     signature_data=b'\x02')

        self.assertTrue(a != b)
        self.assertTrue(b != a)
예제 #2
0
    def test_equal_on_not_equal_unique_identifier(self):
        """
        Test that the equality operator returns False when comparing two
        sign response payloads with different unique_identifier.
        """
        a = sign.SignResponsePayload(unique_identifier='a',
                                     signature_data=b'\x01')

        b = sign.SignResponsePayload(unique_identifier='b',
                                     signature_data=b'\x01')

        self.assertFalse(a == b)
        self.assertFalse(b == a)
예제 #3
0
    def test_not_equal_on_equal(self):
        """
        Test that the inequality operator returns false when comparing two
        equal sign response payloads.
        """
        encoding = utils.BytearrayStream(self.full_encoding.buffer)
        a = sign.SignResponsePayload()
        b = sign.SignResponsePayload()

        self.assertFalse(a != b)
        self.assertFalse(b != a)

        a.read(encoding)
        b.read(self.full_encoding)

        self.assertFalse(a != b)
        self.assertFalse(b != a)
예제 #4
0
    def test_read_invalid(self):
        """
        Test that a ValueError gets raised when required Sign response
        payload attributes are missing from the payload encoding.
        """
        payload = sign.SignResponsePayload()
        args = (self.empty_encoding, )
        self.assertRaisesRegexp(
            ValueError,
            "invalid payload missing the unique identifier attribute",
            payload.read, *args)

        payload = sign.SignResponsePayload()
        args = (self.incomplete_encoding, )
        self.assertRaisesRegexp(
            ValueError, "invalid payload missing the signature data attribute",
            payload.read, *args)
예제 #5
0
 def test_invalid_signature_data(self):
     """
     Test that a TypeError is raised when an invalid value is used to set
     the signature data of a Sign response payload.
     """
     payload = sign.SignResponsePayload()
     args = (payload, 'signature_data', 0)
     self.assertRaisesRegexp(TypeError, "signature data must be bytes",
                             setattr, *args)
예제 #6
0
    def test_init(self):
        """
        Test that a Sign response payload can be constructed with no
        arguments.
        """
        payload = sign.SignResponsePayload()

        self.assertEqual(None, payload.unique_identifier)
        self.assertEqual(None, payload.signature_data)
예제 #7
0
 def test_invalid_unique_identifier(self):
     """
     Test that a TypeError is raised when an invalid value is used to set
     the unique identifier of a Sign response payload.
     """
     payload = sign.SignResponsePayload()
     args = (payload, 'unique_identifier', 0)
     self.assertRaisesRegex(TypeError, "unique identifier must be a string",
                            setattr, *args)
예제 #8
0
    def test_not_equal_on_type_mismatch(self):
        """
        Test that the inequality operator returns True when comparing a
        sign response payload to a different type.
        """
        a = sign.SignResponsePayload()
        b = 'invalid'

        self.assertTrue(a != b)
        self.assertTrue(b != a)
예제 #9
0
    def test_equal_on_type_mismatch(self):
        """
        Test that the equality operator returns False when comparing a sign
        response payload to another type.
        """
        a = sign.SignResponsePayload()
        b = 'invalid'

        self.assertFalse(a == b)
        self.assertFalse(b == a)
예제 #10
0
 def test_write_invalid(self):
     """
     Test that a ValueError gets raised when a required Sign response
     payload attribute is missing when encoding the payload.
     """
     payload = sign.SignResponsePayload()
     stream = utils.BytearrayStream()
     args = (stream, )
     self.assertRaisesRegexp(
         ValueError,
         "invalid payload missing the unique identifier attribute",
         payload.write, *args)
예제 #11
0
    def test_init_with_args(self):
        """
        Test that a Sign response payload can be constructed with valid
        values.
        """
        payload = sign.SignResponsePayload(
            unique_identifier='00000000-1111-2222-3333-444444444444',
            signature_data=b'\x01\x02\x03')

        self.assertEqual('00000000-1111-2222-3333-444444444444',
                         payload.unique_identifier)
        self.assertEqual(b'\x01\x02\x03', payload.signature_data)
예제 #12
0
    def test_write(self):
        """
        Test that a Sign response payload can be written to a data stream.
        """
        payload = sign.SignResponsePayload(
            unique_identifier='b4faee10-aa2a-4446-8ad4-0881f3422959',
            signature_data=b'\x01\x02\x03\x04\x05\x06\x07\x08'
            b'\x09\x10\x11\x12\x13\x14\x15\x16')
        stream = utils.BytearrayStream()
        payload.write(stream)

        self.assertEqual(len(self.full_encoding), len(stream))
        self.assertEqual(str(self.full_encoding), str(stream))
예제 #13
0
    def test_str(self):
        """
        Test that str can be applied to a sign response payload.
        """
        payload = sign.SignResponsePayload(
            unique_identifier='00000000-1111-2222-3333-444444444444',
            signature_data=b'\x01\x02\x03')

        expected = str({
            'unique_identifier': '00000000-1111-2222-3333-444444444444',
            'signature_data': b'\x01\x02\x03'
        })

        observed = str(payload)
        self.assertEqual(expected, observed)
예제 #14
0
    def test_repr(self):
        """
        Test that repr can applied to a sign response payload.
        """
        payload = sign.SignResponsePayload(
            unique_identifier='00000000-1111-2222-3333-444444444444',
            signature_data=b'\x01\x02\x03')

        expected = (
            "SignResponsePayload("
            "unique_identifier='00000000-1111-2222-3333-444444444444', "
            "signature_data=" + str(b'\x01\x02\x03') + ")")

        observed = repr(payload)
        self.assertEqual(expected, observed)
예제 #15
0
    def test_read(self):
        """
        Test that a Sign response payload can be read from a data stream.
        """
        payload = sign.SignResponsePayload()

        self.assertEqual(None, payload.unique_identifier)
        self.assertEqual(None, payload.signature_data)

        payload.read(self.full_encoding)

        self.assertEqual('b4faee10-aa2a-4446-8ad4-0881f3422959',
                         payload.unique_identifier)
        self.assertEqual(
            b'\x01\x02\x03\x04\x05\x06\x07\x08'
            b'\x09\x10\x11\x12\x13\x14\x15\x16', payload.signature_data)
예제 #16
0
 def _create_sign_payload(self):
     return sign.SignResponsePayload()