text: import shutil
  import tempfile
  import sys
  import unittest
  import os
  import json
  
  from StringIO import StringIO
  from electrum_desire.storage import WalletStorage, FINAL_SEED_VERSION
  
  
  class FakeSynchronizer(object):
  
      def __init__(self):
          self.store = []
  
      def add(self, address):
          self.store.append(address)
  
  
  class WalletTestCase(unittest.TestCase):
  
      def setUp(self):
          super(WalletTestCase, self).setUp()
          self.user_dir = tempfile.mkdtemp()
  
          self.wallet_path = os.path.join(self.user_dir, "somewallet")
  
          self._saved_stdout = sys.stdout
          self._stdout_buffer = StringIO()
          sys.stdout = self._stdout_buffer
  
      def tearDown(self):
          super(WalletTestCase, self).tearDown()
          shutil.rmtree(self.user_dir)
          # Restore the "real" stdout
          sys.stdout = self._saved_stdout
  
  
  class TestWalletStorage(WalletTestCase):
  
      def test_read_dictionnary_from_file(self):
  
          some_dict = {"a":"b", "c":"d"}
          contents = json.dumps(some_dict)
          with open(self.wallet_path, "w") as f:
              contents = f.write(contents)
  
          storage = WalletStorage(self.wallet_path)
          self.assertEqual("b", storage.get("a"))
          self.assertEqual("d", storage.get("c"))
  
      def test_write_dictionnary_to_file(self):
  
          storage = WalletStorage(self.wallet_path)
  
          some_dict = {
              u"a": u"b",
              u"c": u"d",
              u"seed_version": FINAL_SEED_VERSION}
  
          for key, value in some_dict.items():
              storage.put(key, value)
          storage.write()
  
          contents = ""
          with open(self.wallet_path, "r") as f:
              contents = f.read()
          self.assertEqual(some_dict, json.loads(contents))
  