Exemplo n.º 1
0
 def test_basic_hbase_usage(self, mocked_hbcl):
     local_config = DotDict({
         'hbase_host': 'host',
         'database_name': 'name',
         'hbase_port': 9090,
         'hbase_timeout': 9000,
         'number_of_retries': 2,
         'logger': SilentFakeLogger(),
     })
     a_fake_hbase_connection = FakeHB_Connection()
     mocked_hbcl.HBaseConnectionForCrashReports = \
         mock.Mock(return_value=a_fake_hbase_connection)
     hb_context = HBaseConnectionContextPooled(local_config, local_config)
     self.assertEqual(mocked_hbcl.HBaseConnectionForCrashReports.call_count,
                      1)
     self.assertEqual(a_fake_hbase_connection.close_counter, 1)
     # open a connection
     with hb_context() as conn:
         self.assertEqual(
             mocked_hbcl.HBaseConnectionForCrashReports.call_count, 2)
     self.assertEqual(a_fake_hbase_connection.close_counter, 1)
     # get that same connection again
     with hb_context() as conn:
         self.assertEqual(
             mocked_hbcl.HBaseConnectionForCrashReports.call_count, 2)
     self.assertEqual(a_fake_hbase_connection.close_counter, 1)
     # get a named connection
     with hb_context('fred') as conn:
         self.assertEqual(
             mocked_hbcl.HBaseConnectionForCrashReports.call_count, 3)
     self.assertEqual(a_fake_hbase_connection.close_counter, 1)
     self.assertEqual(len(hb_context.pool), 2)
     # get that original same connection again
     with hb_context() as conn:
         self.assertEqual(
             mocked_hbcl.HBaseConnectionForCrashReports.call_count, 3)
     self.assertEqual(a_fake_hbase_connection.close_counter, 1)
     # close all connections
     hb_context.close()
     self.assertEqual(a_fake_hbase_connection.close_counter, 3)
Exemplo n.º 2
0
    def test_hbase_usage_with_transaction(self, mocked_hbcl):
        local_config = DotDict({
            'hbase_host': 'host',
            'database_name': 'name',
            'hbase_port': 9090,
            'hbase_timeout': 9000,
            'number_of_retries': 2,
            'logger': SilentFakeLogger(),
        })
        a_fake_hbase_connection = FakeHB_Connection()
        mocked_hbcl.HBaseConnectionForCrashReports = \
            mock.Mock(return_value=a_fake_hbase_connection)
        hb_context = HBaseConnectionContextPooled(local_config, local_config)

        def all_ok(connection, dummy):
            self.assertEqual(dummy, 'hello')
            return True

        transaction = TransactionExecutor(local_config, hb_context)
        result = transaction(all_ok, 'hello')
        self.assertTrue(result)
        self.assertEqual(mocked_hbcl.HBaseConnectionForCrashReports.call_count,
                         2)
        self.assertEqual(a_fake_hbase_connection.close_counter, 1)
        self.assertEqual(a_fake_hbase_connection.rollback_counter, 0)
        self.assertEqual(a_fake_hbase_connection.commit_counter, 1)

        def bad_deal(connection, dummy):
            raise KeyError('fred')

        self.assertRaises(KeyError, transaction, bad_deal, 'hello')
        self.assertEqual(mocked_hbcl.HBaseConnectionForCrashReports.call_count,
                         2)
        self.assertEqual(a_fake_hbase_connection.close_counter, 1)
        self.assertEqual(a_fake_hbase_connection.rollback_counter, 1)
        self.assertEqual(a_fake_hbase_connection.commit_counter, 1)

        hb_context.close()
        self.assertEqual(a_fake_hbase_connection.close_counter, 2)
Exemplo n.º 3
0
 def test_basic_hbase_usage(self, mocked_hbcl):
     local_config = DotDict({
       'hbase_host': 'host',
       'database_name': 'name',
       'hbase_port': 9090,
       'hbase_timeout': 9000,
       'number_of_retries': 2,
       'logger': SilentFakeLogger(),
     })
     a_fake_hbase_connection = FakeHB_Connection()
     mocked_hbcl.HBaseConnectionForCrashReports = \
         mock.Mock(return_value=a_fake_hbase_connection)
     hb_context = HBaseConnectionContextPooled(
         local_config,
         local_config
     )
     self.assertEqual(
         mocked_hbcl.HBaseConnectionForCrashReports.call_count,
         1
     )
     self.assertEqual(
         a_fake_hbase_connection.close_counter,
         1
     )
     # open a connection
     with hb_context() as conn:
         self.assertEqual(
             mocked_hbcl.HBaseConnectionForCrashReports.call_count,
             2
         )
     self.assertEqual(
         a_fake_hbase_connection.close_counter,
         1
     )
     # get that same connection again
     with hb_context() as conn:
         self.assertEqual(
             mocked_hbcl.HBaseConnectionForCrashReports.call_count,
             2
         )
     self.assertEqual(
         a_fake_hbase_connection.close_counter,
         1
     )
     # get a named connection
     with hb_context('fred') as conn:
         self.assertEqual(
             mocked_hbcl.HBaseConnectionForCrashReports.call_count,
             3
         )
     self.assertEqual(
         a_fake_hbase_connection.close_counter,
         1
     )
     self.assertEqual(
         len(hb_context.pool),
         2
     )
     # get that original same connection again
     with hb_context() as conn:
         self.assertEqual(
             mocked_hbcl.HBaseConnectionForCrashReports.call_count,
             3
         )
     self.assertEqual(
         a_fake_hbase_connection.close_counter,
         1
     )
     # close all connections
     hb_context.close()
     self.assertEqual(
         a_fake_hbase_connection.close_counter,
         3
     )
Exemplo n.º 4
0
    def test_hbase_usage_with_transaction(self, mocked_hbcl):
        local_config = DotDict({
          'hbase_host': 'host',
          'database_name': 'name',
          'hbase_port': 9090,
          'hbase_timeout': 9000,
          'number_of_retries': 2,
          'logger': SilentFakeLogger(),
        })
        a_fake_hbase_connection = FakeHB_Connection()
        mocked_hbcl.HBaseConnectionForCrashReports = \
            mock.Mock(return_value=a_fake_hbase_connection)
        hb_context = HBaseConnectionContextPooled(
            local_config,
            local_config
        )
        def all_ok(connection, dummy):
            self.assertEqual(dummy, 'hello')
            return True

        transaction = TransactionExecutor(local_config, hb_context)
        result = transaction(all_ok, 'hello')
        self.assertTrue(result)
        self.assertEqual(
            mocked_hbcl.HBaseConnectionForCrashReports.call_count,
            2
        )
        self.assertEqual(
            a_fake_hbase_connection.close_counter,
            1
        )
        self.assertEqual(
            a_fake_hbase_connection.rollback_counter,
            0
        )
        self.assertEqual(
            a_fake_hbase_connection.commit_counter,
            1
        )

        def bad_deal(connection, dummy):
            raise KeyError('fred')

        self.assertRaises(KeyError, transaction, bad_deal, 'hello')
        self.assertEqual(
            mocked_hbcl.HBaseConnectionForCrashReports.call_count,
            2
        )
        self.assertEqual(
            a_fake_hbase_connection.close_counter,
            1
        )
        self.assertEqual(
            a_fake_hbase_connection.rollback_counter,
            1
        )
        self.assertEqual(
            a_fake_hbase_connection.commit_counter,
            1
        )

        hb_context.close()
        self.assertEqual(
            a_fake_hbase_connection.close_counter,
            2
        )