# -*- coding: utf-8 -*-

"""
Copyright [2009-2017] EMBL-European Bioinformatics Institute
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
"""

import psycopg2
import psycopg2.extras

import pytest

from tasks.config import db

from tasks.export.ftp.fasta.active import ActiveFastaExport
from tasks.export.ftp.fasta.active import SpeciesSpecificFastaExport


def count(sql):
    connection = psycopg2.connect(db().pgloader_url())
    cursor = connection.cursor(cursor_factory=psycopg2.extras.DictCursor)
    cursor.execute('select count(*) total from (%s) t' % sql)
    result = cursor.fetchone()
    return result['total']


@pytest.mark.slowtest
def test_active_sql_produces_correct_counts():
    sql = ActiveFastaExport().fetch
    assert count(sql) == 11075136


@pytest.mark.slowtest
def test_species_sql_produces_correct_counts():
    sql = SpeciesSpecificFastaExport().fetch
    assert count(sql) == 13729588

# -*- coding: utf-8 -*-

"""
Copyright [2009-2017] EMBL-European Bioinformatics Institute
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
"""

import psycopg2
import psycopg2.extras

import pytest

from tasks.config import db

from tasks.export.ftp.fasta.active import ActiveFastaExport
from tasks.export.ftp.fasta.active import SpeciesSpecificFastaExport


def count(sql):
    connection = psycopg2.connect(db().pgloader_url())
    cursor = connection.cursor(cursor_factory=psycopg2.extras.DictCursor)
    cursor.execute('select count(*) total from (%s) t' % sql)
    result = cursor.fetchone()
    return result['total']


@pytest.mark.slowtest
def test_active_sql_produces_correct_counts():
    sql = ActiveFastaExport().fetch
    assert count(sql) == 11075136


@pytest.mark.slowtest
def test_species_sql_produces_correct_counts():
    sql = SpeciesSpecificFastaExport().fetch
    assert count(sql) == 13831954

Update counts