Add several missing files
This commit is contained in:
		
							parent
							
								
									51e09e5287
								
							
						
					
					
						commit
						d417bbc938
					
				
							
								
								
									
										42
									
								
								chainlib/chain.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								chainlib/chain.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,42 @@ | ||||
| class ChainSpec: | ||||
| 
 | ||||
|     def __init__(self, engine, common_name, network_id, tag=None): | ||||
|         self.o = { | ||||
|                 'engine': engine, | ||||
|                 'common_name': common_name, | ||||
|                 'network_id': network_id, | ||||
|                 'tag': tag, | ||||
|                 } | ||||
| 
 | ||||
|     def network_id(self): | ||||
|         return self.o['network_id'] | ||||
| 
 | ||||
| 
 | ||||
|     def chain_id(self): | ||||
|         return self.o['network_id'] | ||||
| 
 | ||||
| 
 | ||||
|     def engine(self): | ||||
|         return self.o['engine'] | ||||
| 
 | ||||
| 
 | ||||
|     def common_name(self): | ||||
|         return self.o['common_name'] | ||||
| 
 | ||||
| 
 | ||||
|     @staticmethod | ||||
|     def from_chain_str(chain_str): | ||||
|         o = chain_str.split(':') | ||||
|         if len(o) < 3: | ||||
|             raise ValueError('Chain string must have three sections, got {}'.format(len(o))) | ||||
|         tag = None | ||||
|         if len(o) == 4: | ||||
|             tag = o[3] | ||||
|         return ChainSpec(o[0], o[1], int(o[2]), tag) | ||||
| 
 | ||||
| 
 | ||||
|     def __str__(self): | ||||
|         s = '{}:{}:{}'.format(self.o['engine'], self.o['common_name'], self.o['network_id']) | ||||
|         if self.o['tag'] != None: | ||||
|             s += ':' + self.o['tag'] | ||||
|         return s | ||||
							
								
								
									
										12
									
								
								tests/base.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								tests/base.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | ||||
| import unittest | ||||
| 
 | ||||
| 
 | ||||
| class TestBase(unittest.TestCase): | ||||
| 
 | ||||
| 
 | ||||
|     def setUp(self): | ||||
|         pass | ||||
| 
 | ||||
| 
 | ||||
|     def tearDown(self): | ||||
|         pass | ||||
							
								
								
									
										22
									
								
								tests/test_chain.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								tests/test_chain.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,22 @@ | ||||
| import unittest | ||||
| 
 | ||||
| from chainlib.chain import ChainSpec | ||||
| 
 | ||||
| from tests.base import TestBase | ||||
| 
 | ||||
| 
 | ||||
| class TestChain(TestBase): | ||||
| 
 | ||||
|     def test_chain_spec(self): | ||||
| 
 | ||||
|         s = ChainSpec.from_chain_str('foo:bar:3') | ||||
|         s = ChainSpec.from_chain_str('foo:bar:3:baz') | ||||
| 
 | ||||
|         with self.assertRaises(ValueError): | ||||
|             s = ChainSpec.from_chain_str('foo:bar:a') | ||||
|             s = ChainSpec.from_chain_str('foo:bar') | ||||
|             s = ChainSpec.from_chain_str('foo') | ||||
| 
 | ||||
| 
 | ||||
| if __name__ == '__main__': | ||||
|     unittest.main() | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user