def setup(self):
        self.loader = MySQLLoader(mysql_config, column_types_file, wanted_columns_file)
        self.loader.connect()
        self.loader.initialize_table()

        with NamedCSVReader(hit_data_file, all_columns_file) as reader:
            for row in reader:
                self.loader.insert(row)
        self.loader.commit()
    (options, args) = parser.parse_args()

    # basic checking
    if not options.input_file or not os.path.isfile(options.input_file):
        parser.error('--input-file invalid. try -h or --help')
    if not os.path.isfile(options.all_columns_file):
        parser.error('--column-headers-file invalid. try -h or --help')
    if not os.path.isfile(options.column_types_file):
        parser.error('--column-types-file invalid. try -h or --help')
    if not os.path.isfile(options.wanted_columns_file):
        parser.error('--wanted-columns-file invalid. try -h or --help')

    # the meat

    mysql_config = {
        'user'   : options.user,
        'passwd' : options.password,
        'host'   : options.host,
        'db'     : options.db,
    }

    loader = MySQLLoader(mysql_config, options.column_types_file, options.wanted_columns_file)
    loader.connect()
    loader.initialize_table()
    
    with NamedCSVReader(options.input_file, options.all_columns_file) as reader:
        for row in reader:
            loader.insert(row)
    loader.commit()
class TestClass():
    def setup(self):
        self.loader = MySQLLoader(mysql_config, column_types_file, wanted_columns_file)
        self.loader.connect()
        self.loader.initialize_table()

        with NamedCSVReader(hit_data_file, all_columns_file) as reader:
            for row in reader:
                self.loader.insert(row)
        self.loader.commit()
 
    def teardown(self):
        self.loader.disconnect()

    def test_Mysql_count(self):
        eq_(self.loader.get_count(), hit_data_count)

    def test_Mysql_count(self):
        rows = self.loader.fetch_test()
        assert_equal(rows[0]  , (None              , None       , None            , "pSZ6Ts6aAO5q7xQTc6"  , 3))
        assert_equal(rows[1]  , (None              , None       , None            , "KeTOFYW pOahZY5mgJe" , 184))
        assert_equal(rows[2]  , ("LOUDkf"          , None       , "wyS6oQwSLMX"   , "f3mQ70GmvxLfkgf"     , None))
        assert_equal(rows[3]  , ("923vp0svpt"      , 2443444867 , None            , " 30PYcy"             , 123))
        assert_equal(rows[4]  , (None              , None       , "q"             , None                  , None))
        assert_equal(rows[5]  , (None              , None       , None            , None                  , 35))
        assert_equal(rows[6]  , ("Sh19bvV7QY0V"    , None       , None            , None                  , None))
        assert_equal(rows[7]  , ("RN8PkRc"         , None       , None            , "5zg3iYkKnKj"         , None))
        assert_equal(rows[8]  , (None              , 1633796482 , "UZshP7vdVll"   , None                  , None))
        assert_equal(rows[9]  , (None              , 3167102661 , None            , "RKu"                 , 99))
        assert_equal(rows[10] , ("Zcdwp7ac5p3PL08" , 1444331307 , None            , None                  , None))
        assert_equal(rows[11] , ("r"               , 279371533  , "5iHmsNlZbYKzY" , "WUy9tj8HlAYlamQu0o"  , None))