configparser.NoSectionError:没有节:“数据库”

2024-06-11 13:59:06 发布

您现在位置:Python中文网/ 问答频道 /正文

从unnitest文件运行时出现“configparser.NoSectionError:无节:'数据库'”错误

.py文件

import psycopg2 as pg2
from configparser import ConfigParser

parser = ConfigParser()
configFilePath = r'dev.ini'
parser.read(configFilePath)
print('1')

conn = pg2.connect(user=parser.get('database', 'user'),
                   password=parser.get('database', 'password'),
                   host=parser.get('database', 'host'),
                   port=parser.get('database', 'port'),
                   database=parser.get('database', 'database'))
print(conn.get_dsn_parameters(), "\n")
print('2')


def get_data_from_query(query):
    """return query output"""
    cur = conn.cursor()
    cur.execute(query)
    data_from_query = cur.fetchall()
    return data_from_query




def economical_bowlers(year,data_table_1="matches",data_table_2="deliveries"):
    query = """select c.bowler , sum(c.sum*6/c.count) 
        from (select a.bowler ,sum(a.total_runs - a.bye_runs - a.legbye_runs ),count(a.ball)
         from {2} a inner join {1} b 
         on a.match_id=b.id 
         where b.season='{0}' 
        group by a.bowler) 
        c group by c.bowler;""".format(year,data_table_1,data_table_2)
    data = get_data_from_query(query)
    return dict(data)

.py单元测试文件

import unittest
import os
import sys

sys.path.insert(2, os.path.join(os.getcwd(), '..'))
import economical_bowlers
from Extractor import extractor
import ipl_project_sql


class Economical_bowlers(unittest.TestCase):

    def test_economical_bowlers(self):
        expected_matches_data_of_all_teams = {'AD Russell': 10, 'P Kumar': 6}
        calculated_matches_data_of_all_teams = ipl_project_sql.economical_bowlers('2015', data_table_1='matches',
                                                                                  data_table_2='deliveries')
        self.assertEqual(expected_matches_data_of_all_teams,
                         calculated_matches_data_of_all_teams)


if __name__ == '__main__':
    unittest.main()

当两个文件都是独立的时,两个文件都能正常工作。第二个文件只测试第一个文件的输出。我只想删除错误


Tags: 文件offromimportparserdatagettable