1+ #!/usr/bin/env python3
2+ import os
3+ import unittest
4+ from src .lighthouseweb3 import Lighthouse
5+ from .setup import parse_env
6+
7+
8+ class TestIPNSPublishRecord (unittest .TestCase ):
9+
10+ def test_ipns_publish_record (self ):
11+ """test ipns_publish_record function"""
12+ parse_env ()
13+
14+ l = Lighthouse (os .environ .get ("LIGHTHOUSE_TOKEN" ))
15+ res = l .generateKey ()
16+
17+ self .assertIsInstance (res , dict , "result is a dict" )
18+ self .assertIsInstance (res .get ("data" ), dict , "data is a dict" )
19+ self .assertIsInstance (res .get ("data" ).get ("ipnsName" ), str , "ipnsName is a str" )
20+ self .assertIsInstance (res .get ("data" ).get ("ipnsId" ), str , "ipnsId is a dict" )
21+
22+ record = l .publishRecord (
23+ 'QmeMsykMDyD76zpAbinCy1cjb1KL6CVNBfB44am15U1XHh' ,
24+ res .get ('data' ).get ('ipnsName' )
25+ )
26+
27+ self .assertIsInstance (record , dict , "record is a dict" )
28+ self .assertIsInstance (record .get ("data" ), dict , "data is a dict" )
29+ self .assertIsInstance (record .get ("data" ).get ("Name" ), str , "name is a str" )
30+ self .assertIsInstance (record .get ("data" ).get ("Value" ), str , "value is a str" )
31+ self .assertEqual (record .get ("data" ).get ("Value" ), "/ipfs/QmeMsykMDyD76zpAbinCy1cjb1KL6CVNBfB44am15U1XHh" )
32+
33+ def test_ipns_publish_record_invalid_token (self ):
34+ """test ipns_generate_key with invalid token"""
35+ parse_env ()
36+ l = Lighthouse (os .environ .get ("LIGHTHOUSE_TOKEN" ))
37+ res = l .generateKey ()
38+
39+ self .assertIsInstance (res , dict , "result is a dict" )
40+ self .assertIsInstance (res .get ("data" ), dict , "data is a dict" )
41+ self .assertIsInstance (res .get ("data" ).get ("ipnsName" ), str , "ipnsName is a str" )
42+ self .assertIsInstance (res .get ("data" ).get ("ipnsId" ), str , "ipnsId is a dict" )
43+
44+ l = Lighthouse ("invalid_token" )
45+ with self .assertRaises (Exception ) as context :
46+ l .publishRecord (
47+ 'QmeMsykMDyD76zpAbinCy1cjb1KL6CVNBfB44am15U1XHh' ,
48+ res .get ('data' ).get ('ipnsName' )
49+ )
50+ self .assertIn ("authentication failed" , str (context .exception ).lower ())
51+
52+ def test_ipns_publish_record_invalid_cid (self ):
53+ """test ipns_generate_key with invalid cid"""
54+ l = Lighthouse (os .environ .get ("LIGHTHOUSE_TOKEN" ))
55+ res = l .generateKey ()
56+
57+ self .assertIsInstance (res , dict , "result is a dict" )
58+ self .assertIsInstance (res .get ("data" ), dict , "data is a dict" )
59+ self .assertIsInstance (res .get ("data" ).get ("ipnsName" ), str , "ipnsName is a str" )
60+ self .assertIsInstance (res .get ("data" ).get ("ipnsId" ), str , "ipnsId is a dict" )
61+
62+ record = l .publishRecord (
63+ 'invalid_cid' ,
64+ res .get ('data' ).get ('ipnsName' )
65+ )
66+ self .assertIsInstance (record , dict , "record is a dict" )
67+ self .assertIsInstance (record .get ("error" ), list , "error is a list" )
68+ self .assertEqual (record .get ("error" )[0 ]['message' ], 'Something went wrong.' )
69+
70+ def test_ipns_publish_record_invalid_key_name (self ):
71+ """test ipns_generate_key with invalid key name"""
72+ parse_env ()
73+
74+ l = Lighthouse (os .environ .get ("LIGHTHOUSE_TOKEN" ))
75+ res = l .generateKey ()
76+
77+ self .assertIsInstance (res , dict , "result is a dict" )
78+ self .assertIsInstance (res .get ("data" ), dict , "data is a dict" )
79+ self .assertIsInstance (res .get ("data" ).get ("ipnsName" ), str , "ipnsName is a str" )
80+ self .assertIsInstance (res .get ("data" ).get ("ipnsId" ), str , "ipnsId is a dict" )
81+
82+ record = l .publishRecord (
83+ 'QmeMsykMDyD76zpAbinCy1cjb1KL6CVNBfB44am15U1XHh' ,
84+ 'invalid_key_name'
85+ )
86+ self .assertIsInstance (record , dict , "record is a dict" )
87+ self .assertIsInstance (record .get ("error" ), list , "error is a list" )
88+ self .assertEqual (record .get ("error" )[0 ]['message' ], 'Something went wrong.' )
0 commit comments