def test_remove_checksum_second_time(self): """ `remove_checksum` is called on an Address that does not have a checksum. """ addy = Address(trytes=b'ZKIUDZXQYQAWSHPKSAATJXPAQZPGYCDCQDRSMWWCGQJNI' b'PCOORMDRNREDUDKBMUYENYTFVUNEWDBAKXMV') self.assertFalse(addy.is_checksum_valid()) self.assertTrue(len(addy) == Address.LEN) addy.remove_checksum() self.assertFalse(addy.is_checksum_valid()) self.assertTrue(len(addy) == Address.LEN)
def test_remove_checksum(self): """ Checksum is removed from an address. """ addy = Address(trytes=b'ZKIUDZXQYQAWSHPKSAATJXPAQZPGYCDCQDRSMWWCGQJNI' b'PCOORMDRNREDUDKBMUYENYTFVUNEWDBAKXMVJJJGBARPB') self.assertTrue(addy.is_checksum_valid()) self.assertTrue(len(addy) == Address.LEN + AddressChecksum.LEN) addy.remove_checksum() self.assertFalse(addy.is_checksum_valid()) self.assertTrue(len(addy) == Address.LEN)
def test_add_checksum(self): """ Checksum is added to an address without it. """ addy = Address(trytes=b'ZKIUDZXQYQAWSHPKSAATJXPAQZPGYCDCQDRSMWWCGQJNI' b'PCOORMDRNREDUDKBMUYENYTFVUNEWDBAKXMV') addy.add_checksum() self.assertTrue(addy.is_checksum_valid()) self.assertTrue(len(addy) == Address.LEN + AddressChecksum.LEN)
def test_checksum_valid(self): """ An address is created with a valid checksum. """ addy = Address(b'RVORZ9SIIP9RCYMREUIXXVPQIPHVCNPQ9HZWYKFWYWZRE' b'9JQKG9REPKIASHUUECPSQO9JT9XNMVKWYGVAFOXM9MUBX') self.assertTrue(addy.is_checksum_valid()) self.assertEqual( binary_type(addy.with_valid_checksum()), b'RVORZ9SIIP9RCYMREUIXXVPQIPHVCNPQ9HZWYKFWYWZRE' b'9JQKG9REPKIASHUUECPSQO9JT9XNMVKWYGVAFOXM9MUBX')
def test_checksum_null(self): """ An address is created without a checksum. """ trytes = (b'ZKIUDZXQYQAWSHPKSAATJXPAQZPGYCDCQDRSMWWCGQJNI' b'PCOORMDRNREDUDKBMUYENYTFVUNEWDBAKXMV') addy = Address(trytes) self.assertFalse(addy.is_checksum_valid()) self.assertEqual( binary_type(addy.with_valid_checksum()), b'ZKIUDZXQYQAWSHPKSAATJXPAQZPGYCDCQDRSMWWCGQJNI' b'PCOORMDRNREDUDKBMUYENYTFVUNEWDBAKXMVJJJGBARPB', )
def test_add_checksum_second_time(self): """ Checksum is added to an address that already has. """ addy = Address(trytes=b'ZKIUDZXQYQAWSHPKSAATJXPAQZPGYCDCQDRSMWWCGQJNI' b'PCOORMDRNREDUDKBMUYENYTFVUNEWDBAKXMVJJJGBARPB') addy.add_checksum() self.assertTrue(addy.is_checksum_valid()) self.assertTrue(len(addy) == Address.LEN + AddressChecksum.LEN) self.assertEqual( addy, Address(trytes=b'ZKIUDZXQYQAWSHPKSAATJXPAQZPGYCDCQDRSMWWCGQJNI' b'PCOORMDRNREDUDKBMUYENYTFVUNEWDBAKXMVJJJGBARPB'))
def test_checksum_invalid(self): """ An address is created with an invalid checksum. """ trytes = (b'IGKUOZGEFNSVJXETLIBKRSUZAWMYSVDPMHGQPCETEFNZP' b'XSJLZMBLAWDRLUBWPIPKFNEPADIWMXMYYRKQ') addy = Address(trytes + b'XYYNAFRMB' # <- Last tryte s/b 'A'. ) self.assertFalse(addy.is_checksum_valid()) self.assertEqual( binary_type(addy.with_valid_checksum()), b'IGKUOZGEFNSVJXETLIBKRSUZAWMYSVDPMHGQPCETEFNZP' b'XSJLZMBLAWDRLUBWPIPKFNEPADIWMXMYYRKQXYYNAFRMA', )
def test_checksum_valid(self): """ An address is created with a valid checksum. """ addy = Address( b'RVORZ9SIIP9RCYMREUIXXVPQIPHVCNPQ9HZWYKFWYWZRE' b'9JQKG9REPKIASHUUECPSQO9JT9XNMVKWYGVAITCOXAQSD', ) self.assertTrue(addy.is_checksum_valid()) self.assertEqual( binary_type(addy.with_valid_checksum()), b'RVORZ9SIIP9RCYMREUIXXVPQIPHVCNPQ9HZWYKFWYWZRE' b'9JQKG9REPKIASHUUECPSQO9JT9XNMVKWYGVAITCOXAQSD', )
def test_checksum_null(self): """ An address is created without a checksum. """ trytes = ( b'ZKIUDZXQYQAWSHPKSAATJXPAQZPGYCDCQDRSMWWCGQJNI' b'PCOORMDRNREDUDKBMUYENYTFVUNEWDBAKXMV' ) addy = Address(trytes) self.assertFalse(addy.is_checksum_valid()) self.assertEqual( binary_type(addy.with_valid_checksum()), b'ZKIUDZXQYQAWSHPKSAATJXPAQZPGYCDCQDRSMWWCGQJNI' b'PCOORMDRNREDUDKBMUYENYTFVUNEWDBAKXMVJJJGBARPB', )
def test_checksum_invalid(self): """ An address is created with an invalid checksum. """ trytes = ( b'IGKUOZGEFNSVJXETLIBKRSUZAWMYSVDPMHGQPCETEFNZP' b'XSJLZMBLAWDRLUBWPIPKFNEPADIWMXMYYRKQ' ) addy = Address( trytes + b'XYYNAFRMB' # <- Last tryte s/b 'A'. ) self.assertFalse(addy.is_checksum_valid()) self.assertEqual( binary_type(addy.with_valid_checksum()), b'IGKUOZGEFNSVJXETLIBKRSUZAWMYSVDPMHGQPCETEFNZP' b'XSJLZMBLAWDRLUBWPIPKFNEPADIWMXMYYRKQXYYNAFRMA', )
def _apply(self, value): super(AddressNoChecksum, self)._apply(value) if self._has_errors: return None # Possible it's still just a TryteString if not isinstance(value, Address): value = Address(value) # Bail out if we have a bad checksum if value.checksum and not value.is_checksum_valid(): return self._invalid_value( value=value, reason=self.ADDRESS_BAD_CHECKSUM, exc_info=True, context={ 'supplied_checksum': value.checksum, 'expected_checksum': value.with_valid_checksum().checksum, }, ) return Address(value.address)
def _apply(self, value): super(AddressNoChecksum, self)._apply(value) if self._has_errors: return None # Possible it's still just a TryteString if not isinstance(value, Address): value = Address(value) # Bail out if we have a bad checksum if value.checksum and not value.is_checksum_valid(): return self._invalid_value( value = value, reason = self.ADDRESS_BAD_CHECKSUM, exc_info = True, context = { 'supplied_checksum': value.checksum, 'expected_checksum': value.with_valid_checksum().checksum, }, ) return Address(value.address)