Esempio n. 1
0
    def test_get_metadata(self):
        # Verify that getting a non-cached stored entry's metadata will only load the metadata.
        bytedata_set = os.urandom(10)
        tx_id = bitcoinx.hash_to_hex_str(bitcoinx.double_sha256(bytedata_set))
        metadata_set = TxData(height=1, fee=2, position=None, timestamp=None)
        self.store.add(tx_id, metadata_set, bytedata_set)

        cache = TxCache(self.store)
        metadata_get = cache.get_metadata(tx_id)
        self.assertEqual(metadata_set.height, metadata_get.height)
        self.assertEqual(metadata_set.fee, metadata_get.fee)
        self.assertEqual(metadata_set.position, metadata_get.position)
        self.assertEqual(metadata_set.timestamp, metadata_get.timestamp)

        entry = cache.get_cached_entry(tx_id)
        self.assertTrue(entry.is_metadata_cached())
        self.assertFalse(entry.is_bytedata_cached())
Esempio n. 2
0
    def test_get_transaction_after_metadata(self):
        bytedata_set = os.urandom(10)
        tx_id = bitcoinx.hash_to_hex_str(bitcoinx.double_sha256(bytedata_set))
        metadata_set = TxData(height=1, fee=2, position=None, timestamp=None)
        self.store.add(tx_id, metadata_set, bytedata_set)

        cache = TxCache(self.store)
        metadata_get = cache.get_metadata(tx_id)
        self.assertIsNotNone(metadata_get)

        cached_entry_1 = cache.get_cached_entry(tx_id)
        self.assertTrue(cached_entry_1.is_metadata_cached())
        self.assertFalse(cached_entry_1.is_bytedata_cached())

        entry = cache.get_entry(tx_id)
        self.assertTrue(entry.is_metadata_cached())
        self.assertTrue(entry.is_bytedata_cached())

        cached_entry_2 = cache.get_cached_entry(tx_id)
        self.assertEqual(entry, cached_entry_2)