def setUp(self):
        """
        Set up for testing
        swift.common.key_manager.drivers.sql.SQLDriver.
        """
        self.db_path = tempfile.mktemp()
        self.url = "sqlite:///%s" % (self.db_path, )
        self.conf = {'crypto_keystore_sql_url': self.url}
        self.key_driver = SQLDriver(self.conf)
        self.execute = mock.Mock()
        self.mock_conn = mock.Mock(OperationalError=exc.OperationalError)

        self.mock_conn.cursor.return_value = mock.Mock(execute=self.execute)
        engine = create_engine(self.url)
        meta_test.bind = engine
        Session.configure(bind=engine)
        table_template.create(engine, checkfirst=True)
    def setUp(self):
        """
        Set up for testing
        swift.common.key_manager.drivers.sql.SQLDriver.
        """
        self.db_path = tempfile.mktemp()
        self.url = "sqlite:///%s" % (self.db_path,)
        self.conf = {"crypto_keystore_sql_url": self.url}
        self.key_driver = SQLDriver(self.conf)
        self.execute = mock.Mock()
        self.mock_conn = mock.Mock(OperationalError=exc.OperationalError)

        self.mock_conn.cursor.return_value = mock.Mock(execute=self.execute)
        engine = create_engine(self.url)
        meta_test.bind = engine
        Session.configure(bind=engine)
        table_template.create(engine, checkfirst=True)
    def test_get_key(self):
        """
        Check key value for different account and key_id values.
        """
        # create 2 account with key_id
        acc_info = ["acc1", "acc2"]
        session = Session()
        for acc in acc_info:
            session.add(Key(acc, generate_key()))
        session.commit()
        # check key for first account
        key1 = self.key_driver.get_key(1)
        key2 = self.key_driver.get_key(1)
        self.assertEqual(key1, key2)

        # check key for second account
        key3 = self.key_driver.get_key(2)
        self.assertNotEqual(key2, key3)
        # check raise, if incorrect id (no in table)
        self.assertRaises(StandardError, self.key_driver.get_key, 100)
        session.close()
    def test_get_key(self):
        """
        Check key value for different account and key_id values.
        """
        # create 2 account with key_id
        acc_info = ["acc1", "acc2"]
        session = Session()
        for acc in acc_info:
            session.add(Key(acc, generate_key()))
        session.commit()
        # check key for first account
        key1 = self.key_driver.get_key(1)
        key2 = self.key_driver.get_key(1)
        self.assertEqual(key1, key2)

        # check key for second account
        key3 = self.key_driver.get_key(2)
        self.assertNotEqual(key2, key3)
        # check raise, if incorrect id (no in table)
        self.assertRaises(StandardError, self.key_driver.get_key, 100)
        session.close()