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