def test_scrape_schemas_metadata_with_csv_should_return_objects(
            self, normalize, read_csv):  # noqa

        metadata = \
            utils.Utils.convert_json_to_object(
                self.__MODULE_PATH,
                'metadata.json')
        read_csv.return_value = metadata
        normalize.return_value = metadata

        scraper = metadata_scraper.MetadataScraper()
        schemas_metadata = scraper.scrape({}, csv_path='csv')

        self.assertEqual(1, len(schemas_metadata))
    def test_scrape_schemas_metadata_on_exception_should_re_raise(
            self, normalize, connect):  # noqa
        connect.side_effect = Exception('Error when connecting to Server')

        scraper = metadata_scraper.MetadataScraper()
        self.assertRaises(Exception,
                          scraper.scrape, {},
                          connection_args={
                              'database': 'db',
                              'host': 'mysql_host',
                              'user': '******',
                              'pass': '******'
                          })

        self.assertEqual(connect.call_count, 1)
        self.assertEqual(normalize.call_count, 0)
    def test_scrape_schemas_metadata_with_credentials_should_return_objects(
            self, normalize, connect):  # noqa

        metadata = \
            utils.Utils.convert_json_to_object(
                self.__MODULE_PATH,
                'metadata.json')

        con = Mock()

        connect.return_value = con

        cursor = Mock()

        con.cursor.return_value = cursor

        cursor.fetchall.return_value = \
            utils.Utils.convert_json_to_object(
                self.__MODULE_PATH,
                'rows.json')
        cursor.description =\
            utils.Utils.convert_json_to_object(
                self.__MODULE_PATH,
                'description.json')

        normalize.return_value = metadata

        scraper = metadata_scraper.MetadataScraper()
        schemas_metadata = scraper.scrape({},
                                          connection_args={
                                              'database': 'db',
                                              'host': 'mysql_host',
                                              'user': '******',
                                              'pass': '******'
                                          })

        self.assertEqual(1, len(schemas_metadata))
        self.assertEqual(connect.call_count, 1)