示例#1
0
    def test_right_suffix(self):
        '''
		Правильный суффикс принимается сервером и включается в отдачу
		Чтобы тест не зависео от времени - он должен сам майнить...
		это медленно, поэтому мы проверяем здесь и тот факт, что сервер
		зафиксировал у себя результат нашей работы.
		'''
        info = APP.test_client().get('/')
        score = JsonScore(info.json.get('score'))
        prefix = str(ScoreHash(score, APP.config))
        suffix = next(
            (xs for xs in (hex(s) for s in range(0xffffffffffffffff))
             if hashlib.sha256((prefix + ' ' + xs).encode(
                 'ascii')).hexdigest().endswith('0' * APP.config['STRENGTH'])))
        response = APP.test_client().post('/score', json={'suffix': suffix})
        assert response.status_code == status.HTTP_200_OK
        assert suffix in JsonScore(
            APP.test_client().get('/').json.get('score')).suffixes()
示例#2
0
 def test_json(self):
     ''' Тестируем выбор правильного core '''
     score = StrongestScore(
         [JsonScore(self.EMPTY),
          JsonScore(self.STRONGEST)], {'STRENGTH': 6})
     assert score.json()['invoice'] == '2X8kfnzk@9a856dac7d475014'
示例#3
0
 def test_as_string(self):
     ''' Проверяем, как JsonScore превращается в строку '''
     assert str(JsonScore(self.FULL)) == (
         '2018-06-19T14:17:22Z 185.180.196.2 4096 2X8kfnzk@9a856dac7d475014 '
         '1e2434e de5407 14d43e4 30a7d 11afbbf 4cd950')
示例#4
0
	def test_full_hash(self):
		''' Тест ха хеш полного score'''
		assert str(ScoreHash(JsonScore(self.FULL), {'STRENGTH': 6})) == (
			'b7948e996c6765c1d625dafbb6d3aa5fabddc7232cdec19430c8d0960e000000'
		)
示例#5
0
	def test_empty_hash(self):
		''' Тест на хеш пустого Score, а хеш у него - префиксная часть '''
		assert str(ScoreHash(JsonScore(self.EMPTY), {'STRENGTH': 6})) == (
			'2018-06-20T20:01:32Z 178.128.169.239 4096 Rg3XJle8@48b368ce23ed97fe'
		)
示例#6
0
	def test_value_empty(self):
		''' Размер пустого JsonScore '''
		assert int(ScoreValue(JsonScore(self.EMPTY), {'STRENGTH': 6})) == 0
示例#7
0
	def test_value(self):
		''' размер JsonScore '''
		assert int(ScoreValue(JsonScore(self.FULL), {'STRENGTH': 6})) == 21
示例#8
0
 def test_return_score(self):
     ''' В ответе сервер указывает свой score '''
     response = self.put_wallet(FakeWallet())
     assert ScoreValid(JsonScore(response.json['score']), APP.config)