mirror of
https://github.com/f-droid/fdroidserver.git
synced 2025-11-04 22:40:29 +03:00
Merge branch 'improve-litecoin-address-validation' into 'master'
improve litecoin validation + tests Closes #660 See merge request fdroid/fdroidserver!644
This commit is contained in:
commit
333098b95a
2 changed files with 33 additions and 4 deletions
|
|
@ -457,7 +457,7 @@ valuetypes = {
|
||||||
["Bitcoin"]),
|
["Bitcoin"]),
|
||||||
|
|
||||||
FieldValidator("Litecoin address",
|
FieldValidator("Litecoin address",
|
||||||
r'^L[a-zA-Z0-9]{33}$',
|
r'^[LM3][a-km-zA-HJ-NP-Z1-9]{26,33}$',
|
||||||
["Litecoin"]),
|
["Litecoin"]),
|
||||||
|
|
||||||
FieldValidator("Repo Type",
|
FieldValidator("Repo Type",
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ class MetadataTest(unittest.TestCase):
|
||||||
os.makedirs(self.tmpdir)
|
os.makedirs(self.tmpdir)
|
||||||
os.chdir(self.basedir)
|
os.chdir(self.basedir)
|
||||||
|
|
||||||
def test_FieldValidator(self):
|
def test_FieldValidator_BitcoinAddress(self):
|
||||||
validator = None
|
validator = None
|
||||||
for vali in fdroidserver.metadata.valuetypes:
|
for vali in fdroidserver.metadata.valuetypes:
|
||||||
if vali.name == 'Bitcoin address':
|
if vali.name == 'Bitcoin address':
|
||||||
|
|
@ -54,9 +54,9 @@ class MetadataTest(unittest.TestCase):
|
||||||
self.assertIsNone(validator.check('3JrrrrWrEZr3rNrrvrecrnyirrnqRhWNLy', 'fake.app.id'))
|
self.assertIsNone(validator.check('3JrrrrWrEZr3rNrrvrecrnyirrnqRhWNLy', 'fake.app.id'))
|
||||||
self.assertIsNone(validator.check('bc1qar0srrr7xrkvr5lr43lrdnwrre5rgtrzrf5rrq', 'fake.app.id'))
|
self.assertIsNone(validator.check('bc1qar0srrr7xrkvr5lr43lrdnwrre5rgtrzrf5rrq', 'fake.app.id'))
|
||||||
|
|
||||||
# some invalid addresses (various special use/testnet addresses)
|
# some invalid addresses
|
||||||
self.assertRaises(fdroidserver.exception.MetaDataException, validator.check,
|
self.assertRaises(fdroidserver.exception.MetaDataException, validator.check,
|
||||||
'21BvMrSYsrWrtrrrn5Au4m4GFr7rrarrN2', 'fake.app.id')
|
'21BvMrSYsrWrtrrlL5A10mlGFr7rrarrN2', 'fake.app.id')
|
||||||
self.assertRaises(fdroidserver.exception.MetaDataException, validator.check,
|
self.assertRaises(fdroidserver.exception.MetaDataException, validator.check,
|
||||||
'5Hrgr3ur5rGLrfKrrrrrrHSrqJrroGrrzrQrrrrrrLNrsrDrrrA', 'fake.app.id')
|
'5Hrgr3ur5rGLrfKrrrrrrHSrqJrroGrrzrQrrrrrrLNrsrDrrrA', 'fake.app.id')
|
||||||
self.assertRaises(fdroidserver.exception.MetaDataException, validator.check,
|
self.assertRaises(fdroidserver.exception.MetaDataException, validator.check,
|
||||||
|
|
@ -68,6 +68,35 @@ class MetadataTest(unittest.TestCase):
|
||||||
self.assertRaises(fdroidserver.exception.MetaDataException, validator.check,
|
self.assertRaises(fdroidserver.exception.MetaDataException, validator.check,
|
||||||
'tb1qw5r8drrejxrrg4y5rrrrrraryrrrrwrkxrjrsx', 'fake.app.id')
|
'tb1qw5r8drrejxrrg4y5rrrrrraryrrrrwrkxrjrsx', 'fake.app.id')
|
||||||
|
|
||||||
|
def test_FieldValidator_LitecoinAddress(self):
|
||||||
|
validator = None
|
||||||
|
for vali in fdroidserver.metadata.valuetypes:
|
||||||
|
if vali.name == 'Litecoin address':
|
||||||
|
validator = vali
|
||||||
|
break
|
||||||
|
self.assertIsNotNone(validator, "could not find 'Litecoin address' validator")
|
||||||
|
|
||||||
|
fdroidserver.metadata.warnings_action = 'error'
|
||||||
|
|
||||||
|
# some valid addresses (L, M, 3)
|
||||||
|
self.assertIsNone(validator.check('LgeGrrrrJAxyXprrPrrBrrX5Qrrrrrrrrd', 'fake.app.id'))
|
||||||
|
self.assertIsNone(validator.check('MrrrrrrrJAxyXpanPtrrRAX5QHxvUJo8id', 'fake.app.id'))
|
||||||
|
self.assertIsNone(validator.check('3rereVr9rAryrranrrrrrAXrrHx', 'fake.app.id'))
|
||||||
|
|
||||||
|
# some invalid addresses (various special use/testnet addresses, invalid chars)
|
||||||
|
self.assertRaises(fdroidserver.exception.MetaDataException, validator.check,
|
||||||
|
'21BvMrSYsrWrtrrrn5Au4l4GFr7rrarrN2', 'fake.app.id')
|
||||||
|
self.assertRaises(fdroidserver.exception.MetaDataException, validator.check,
|
||||||
|
'5Hrgr3ur5rGLrfKrrrrrr1SrqJrroGrrzrQrrrrrrLNrsrDrrrA', 'fake.app.id')
|
||||||
|
self.assertRaises(fdroidserver.exception.MetaDataException, validator.check,
|
||||||
|
'92rr46rUrgTrrromrVrirW6r1rrrdrerrdbJrrrhrCsYrrrrrrc', 'fake.app.id')
|
||||||
|
self.assertRaises(fdroidserver.exception.MetaDataException, validator.check,
|
||||||
|
'K1BvMrSYsrWrtrrrn5Au4m4GFr7rrarrN2', 'fake.app.id')
|
||||||
|
self.assertRaises(fdroidserver.exception.MetaDataException, validator.check,
|
||||||
|
'L0000rSYsrWrtrrrn5Au4m4GFr7rrarrN2', 'fake.app.id')
|
||||||
|
self.assertRaises(fdroidserver.exception.MetaDataException, validator.check,
|
||||||
|
'tb1qw5r8drrejxrrg4y5rrrrrraryrrrrwrkxrjrsx', 'fake.app.id')
|
||||||
|
|
||||||
def test_read_metadata(self):
|
def test_read_metadata(self):
|
||||||
|
|
||||||
def _build_yaml_representer(dumper, data):
|
def _build_yaml_representer(dumper, data):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue