forked from LBRYCommunity/lbry-sdk
Improving error handling for null values
This commit is contained in:
parent
5e07e8dbbd
commit
2ae068c2d2
2 changed files with 26 additions and 2 deletions
|
@ -124,7 +124,12 @@ class BaseClaim:
|
||||||
for field in self.object_fields:
|
for field in self.object_fields:
|
||||||
if key.startswith(f'{field}_'):
|
if key.startswith(f'{field}_'):
|
||||||
attr = getattr(self, field)
|
attr = getattr(self, field)
|
||||||
setattr(attr, key[len(f'{field}_'):], kwargs.pop(key))
|
|
||||||
|
attr_value = kwargs.pop(key)
|
||||||
|
if attr_value is None:
|
||||||
|
raise ValueError(f"Error updating claim - Null value provided for attribute {field}")
|
||||||
|
|
||||||
|
setattr(attr, key[len(f'{field}_'):], attr_value)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
for l in self.repeat_fields:
|
for l in self.repeat_fields:
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
from unittest import TestCase
|
from unittest import TestCase
|
||||||
|
from unittest.mock import patch
|
||||||
from decimal import Decimal
|
from decimal import Decimal
|
||||||
|
|
||||||
from lbry.schema.claim import Claim, Stream, Collection
|
from lbry.schema.claim import Claim, Stream, Collection, BaseClaim
|
||||||
|
|
||||||
|
|
||||||
class TestClaimContainerAwareness(TestCase):
|
class TestClaimContainerAwareness(TestCase):
|
||||||
|
@ -195,3 +196,21 @@ class TestLocations(TestCase):
|
||||||
stream = Stream()
|
stream = Stream()
|
||||||
stream.locations.append({"country": "UA"})
|
stream.locations.append({"country": "UA"})
|
||||||
self.assertEqual(stream.locations[0].country, 'UA')
|
self.assertEqual(stream.locations[0].country, 'UA')
|
||||||
|
|
||||||
|
|
||||||
|
class TestBaseClaimUpdates(TestCase):
|
||||||
|
|
||||||
|
@patch('lbry.schema.claim.Claim')
|
||||||
|
def test_claim_update_url_ok(self, MockClaim):
|
||||||
|
# test if an attribute is provided correctly
|
||||||
|
base_claim = BaseClaim(MockClaim)
|
||||||
|
base_claim.update(thumbnail_url="somescheme:some/path")
|
||||||
|
self.assertEqual(base_claim.thumbnail.url, "somescheme:some/path")
|
||||||
|
|
||||||
|
@patch('lbry.schema.claim.Claim')
|
||||||
|
def test_claim_update_url_error(self, MockClaim):
|
||||||
|
# test if an attribute is null
|
||||||
|
base_claim = BaseClaim(MockClaim)
|
||||||
|
with self.assertRaisesRegex(ValueError, "Error updating claim - Null value provided for attribute thumbnail"):
|
||||||
|
base_claim.update(thumbnail_url=None)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue