Пример #1
0
class testNcovWeRobot(unittest.TestCase):
    def setUp(self) -> None:
        self.sp = TXSpider()

    def test_get_info(self):
        data = self.sp.get_raw_real_time_info()
        assert len(data) > 0

    def test_parse_info(self):
        data1 = [{
            "country": "中国",
            "area": "湖北",
            "city": "武汉",
            "confirm": 618,
            "suspect": 0,
            "dead": 45,
            "heal": 40
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "黄冈",
            "confirm": 122,
            "suspect": 0,
            "dead": 2,
            "heal": 2
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "孝感",
            "confirm": 55,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "荆门",
            "confirm": 38,
            "suspect": 0,
            "dead": 1,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "恩施州",
            "confirm": 17,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "荆州",
            "confirm": 33,
            "suspect": 0,
            "dead": 2,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "仙桃",
            "confirm": 11,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "十堰",
            "confirm": 20,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "随州",
            "confirm": 36,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "天门",
            "confirm": 5,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "宜昌",
            "confirm": 20,
            "suspect": 0,
            "dead": 1,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "鄂州",
            "confirm": 1,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "咸宁",
            "confirm": 43,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "广东",
            "city": "广州",
            "confirm": 17,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "加拿大",
            "area": "",
            "city": "",
            "confirm": 1,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "法国",
            "area": "",
            "city": "",
            "confirm": 3,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }]

        data2 = [{
            "country": "中国",
            "area": "湖北",
            "city": "武汉",
            "confirm": 698,
            "suspect": 0,
            "dead": 45,
            "heal": 40
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "黄冈",
            "confirm": 122,
            "suspect": 0,
            "dead": 2,
            "heal": 2
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "孝感",
            "confirm": 55,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "荆门",
            "confirm": 38,
            "suspect": 0,
            "dead": 1,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "恩施州",
            "confirm": 17,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "荆州",
            "confirm": 33,
            "suspect": 0,
            "dead": 2,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "仙桃",
            "confirm": 11,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "十堰",
            "confirm": 20,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "随州",
            "confirm": 36,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "天门",
            "confirm": 5,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "宜昌",
            "confirm": 20,
            "suspect": 0,
            "dead": 1,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "鄂州",
            "confirm": 1,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "咸宁",
            "confirm": 43,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "广东",
            "city": "广州",
            "confirm": 17,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "加拿大",
            "area": "",
            "city": "",
            "confirm": 2,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "法国",
            "area": "",
            "city": "",
            "confirm": 3,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }]

        last = self.sp.change_raw_data_format(data1)
        now = self.sp.change_raw_data_format(data2)
        last['全国']['confirm'] = 2714
        update_city = self.sp.parse_increase_info(now, last)
        print(update_city)
        assert len(update_city) == 4
        assert update_city[0]['city'] == '武汉'
        assert update_city[1]['area'] == '加拿大'
        assert update_city[2]['area'] == '湖北'
        assert update_city[3]['area'] == '全国'

    def test_get_state_all(self):
        state_dict = self.sp.get_state_all()
        print(state_dict)

    def test_get_short_name(self):
        area1 = '重庆市'
        area2 = '重庆'
        area3 = '某某自治区'
        area4 = '杭州'
        assert re.subn(AREA_TAIL, '', area1)[0] == '重庆'
        assert re.subn(AREA_TAIL, '', area2)[0] == '重庆'
        assert re.subn(AREA_TAIL, '', area3)[0] == '某某'
        assert re.subn(AREA_TAIL, '', area4)[0] == '杭州'

    def test_fill_unknown(self):
        data = [{
            'confirm': 2823,
            'dead': 81,
            'heal': 55,
            'suspect': 5794,
            'country': '中国'
        }]
        res = [{
            'confirm': 2823,
            'dead': 81,
            'heal': 55,
            'suspect': 5794,
            'area': '中国',
            'country': '中国',
            'city': '中国'
        }]
        assert res == self.sp.fill_unknow(data)

    def test_main(self):
        self.sp.main()

    def test_update_city(self):
        old_city = [{
            "country": "中国",
            "area": "湖北",
            "city": "待确认",
            "confirm": 0,
            "suspect": 0,
            "dead": 0,
            "heal": 20,
            "n_confirm": 2,
            "n_suspect": 0,
            "n_dead": 0,
            "n_heal": 3
        }, {
            "country": "中国",
            "area": "西藏",
            "city": "拉萨",
            "confirm": 1,
            "suspect": 0,
            "dead": 0,
            "heal": 0,
            "n_confirm": 1,
            "n_suspect": 0,
            "n_dead": 0,
            "n_heal": 0
        }, {
            "country": "中国",
            "area": "重庆",
            "city": "涪陵区",
            "confirm": 1,
            "suspect": 0,
            "dead": 0,
            "heal": 0,
            "n_confirm": 1,
            "n_suspect": 0,
            "n_dead": 0,
            "n_heal": 0
        }]
        new_city = [{
            "country": "中国",
            "area": "湖北",
            "city": "待确认",
            "confirm": 0,
            "suspect": 0,
            "dead": 0,
            "heal": 30,
            "n_confirm": 2,
            "n_suspect": 0,
            "n_dead": 0,
            "n_heal": 3
        }, {
            "country": "中国",
            "area": "西藏",
            "city": "拉萨",
            "confirm": 1,
            "suspect": 0,
            "dead": 0,
            "heal": 0,
            "n_confirm": 1,
            "n_suspect": 0,
            "n_dead": 0,
            "n_heal": 0
        }, {
            "country": "中国",
            "area": "西藏",
            "city": "林芝",
            "confirm": 1,
            "suspect": 0,
            "dead": 0,
            "heal": 0,
            "n_confirm": 2,
            "n_suspect": 0,
            "n_dead": 0,
            "n_heal": 0
        }]
        update_city = self.sp.merge_update_city(old_city_list=old_city,
                                                new_city_list=new_city)
        assert len(update_city) == 4
        print(update_city)

    def test_parse_new_data(self):
        with open('test_data.json', 'r', encoding='utf-8') as r:
            data = json.load(r)
        data = json.loads(data['data'])
        update_city = self.sp.change_raw_data_format_new(data['areaTree'])
        print(update_city)

    def test_get_all_area(self):
        conn = connect_redis()
        all_area = set(conn.smembers(ALL_AREA_KEY))

    def test_check_dir(self):
        path1 = os.path.join(BASE_DIR, 'test1')
        check_dir_exist(path1)
        pass
Пример #2
0
class testNcovWeRobot(unittest.TestCase):
    def setUp(self) -> None:
        self.sp = TXSpider()
        self.data1 = [{
            "country": "中国",
            "area": "湖北",
            "city": "武汉",
            "confirm": 618,
            "suspect": 0,
            "dead": 45,
            "heal": 40
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "黄冈",
            "confirm": 122,
            "suspect": 0,
            "dead": 2,
            "heal": 2
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "孝感",
            "confirm": 55,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "荆门",
            "confirm": 38,
            "suspect": 0,
            "dead": 1,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "恩施州",
            "confirm": 17,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "荆州",
            "confirm": 33,
            "suspect": 0,
            "dead": 2,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "仙桃",
            "confirm": 11,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "十堰",
            "confirm": 20,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "随州",
            "confirm": 36,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "天门",
            "confirm": 5,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "宜昌",
            "confirm": 20,
            "suspect": 0,
            "dead": 1,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "鄂州",
            "confirm": 1,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "咸宁",
            "confirm": 43,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "广东",
            "city": "广州",
            "confirm": 17,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "加拿大",
            "area": "",
            "city": "",
            "confirm": 1,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "法国",
            "area": "",
            "city": "",
            "confirm": 3,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }]

        self.data2 = [{
            "country": "中国",
            "area": "湖北",
            "city": "武汉",
            "confirm": 698,
            "suspect": 0,
            "dead": 45,
            "heal": 40
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "黄冈",
            "confirm": 122,
            "suspect": 0,
            "dead": 2,
            "heal": 2
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "孝感",
            "confirm": 55,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "荆门",
            "confirm": 38,
            "suspect": 0,
            "dead": 1,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "恩施州",
            "confirm": 17,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "荆州",
            "confirm": 33,
            "suspect": 0,
            "dead": 2,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "仙桃",
            "confirm": 11,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "十堰",
            "confirm": 20,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "随州",
            "confirm": 36,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "天门",
            "confirm": 5,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "宜昌",
            "confirm": 20,
            "suspect": 0,
            "dead": 1,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "鄂州",
            "confirm": 1,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "咸宁",
            "confirm": 43,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "广东",
            "city": "广州",
            "confirm": 17,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "加拿大",
            "area": "",
            "city": "",
            "confirm": 2,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "法国",
            "area": "",
            "city": "",
            "confirm": 3,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "重庆",
            "city": "重庆",
            "confirm": 3,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }]

        self.update_city = [{
            "country": "中国",
            "area": "辽宁",
            "city": "沈阳",
            "confirm": 8,
            "suspect": 0,
            "dead": 0,
            "heal": 0,
            "n_confirm": 1,
            "n_suspect": 0,
            "n_dead": 0,
            "n_heal": 0
        }, {
            "area": "天津",
            "confirm": 24,
            "suspect": 0,
            "dead": 0,
            "heal": 0,
            "city": "天津",
            "n_confirm": 1,
            "n_suspect": 0,
            "n_dead": 0,
            "n_heal": 0
        }, {
            "country": "中国",
            "area": "辽宁",
            "city": "丹东",
            "confirm": 5,
            "suspect": 0,
            "dead": 0,
            "heal": 0,
            "n_confirm": 1,
            "n_suspect": 0,
            "n_dead": 0,
            "n_heal": 0
        }, {
            "country": "中国",
            "area": "上海",
            "city": "外地来沪",
            "confirm": 33,
            "suspect": 0,
            "dead": 0,
            "heal": 0,
            "n_confirm": 33,
            "n_suspect": 0,
            "n_dead": 0,
            "n_heal": 0
        }, {
            "country": "中国",
            "area": "上海",
            "city": "浦东",
            "confirm": 9,
            "suspect": 0,
            "dead": 0,
            "heal": 0,
            "n_confirm": 9,
            "n_suspect": 0,
            "n_dead": 0,
            "n_heal": 0
        }, {
            "country": "中国",
            "area": "上海",
            "city": "长宁",
            "confirm": 5,
            "suspect": 0,
            "dead": 0,
            "heal": 0,
            "n_confirm": 5,
            "n_suspect": 0,
            "n_dead": 0,
            "n_heal": 0
        }, {
            "country": "中国",
            "area": "上海",
            "city": "静安",
            "confirm": 5,
            "suspect": 0,
            "dead": 0,
            "heal": 0,
            "n_confirm": 5,
            "n_suspect": 0,
            "n_dead": 0,
            "n_heal": 0
        }, {
            "country": "中国",
            "area": "上海",
            "city": "徐汇",
            "confirm": 3,
            "suspect": 0,
            "dead": 0,
            "heal": 0,
            "n_confirm": 3,
            "n_suspect": 0,
            "n_dead": 0,
            "n_heal": 0
        }, {
            "country": "中国",
            "area": "上海",
            "city": "虹口",
            "confirm": 2,
            "suspect": 0,
            "dead": 0,
            "heal": 0,
            "n_confirm": 2,
            "n_suspect": 0,
            "n_dead": 0,
            "n_heal": 0
        }, {
            "country": "中国",
            "area": "上海",
            "city": "闵行",
            "confirm": 2,
            "suspect": 0,
            "dead": 0,
            "heal": 0,
            "n_confirm": 2,
            "n_suspect": 0,
            "n_dead": 0,
            "n_heal": 0
        }, {
            "country": "中国",
            "area": "上海",
            "city": "青浦",
            "confirm": 2,
            "suspect": 0,
            "dead": 0,
            "heal": 0,
            "n_confirm": 2,
            "n_suspect": 0,
            "n_dead": 0,
            "n_heal": 0
        }, {
            "country": "中国",
            "area": "上海",
            "city": "黄埔",
            "confirm": 2,
            "suspect": 0,
            "dead": 0,
            "heal": 0,
            "n_confirm": 2,
            "n_suspect": 0,
            "n_dead": 0,
            "n_heal": 0
        }, {
            "country": "中国",
            "area": "上海",
            "city": "宝山",
            "confirm": 1,
            "suspect": 0,
            "dead": 0,
            "heal": 0,
            "n_confirm": 1,
            "n_suspect": 0,
            "n_dead": 0,
            "n_heal": 0
        }, {
            "country": "中国",
            "area": "上海",
            "city": "嘉定",
            "confirm": 1,
            "suspect": 0,
            "dead": 0,
            "heal": 0,
            "n_confirm": 1,
            "n_suspect": 0,
            "n_dead": 0,
            "n_heal": 0
        }, {
            "country": "中国",
            "area": "上海",
            "city": "奉贤",
            "confirm": 1,
            "suspect": 0,
            "dead": 0,
            "heal": 0,
            "n_confirm": 1,
            "n_suspect": 0,
            "n_dead": 0,
            "n_heal": 0
        }, {
            "country": "中国",
            "area": "辽宁",
            "city": "辽阳",
            "confirm": 1,
            "suspect": 0,
            "dead": 0,
            "heal": 0,
            "n_confirm": 1,
            "n_suspect": 0,
            "n_dead": 0,
            "n_heal": 0
        }, {
            "area": "辽宁",
            "confirm": 30,
            "suspect": 0,
            "dead": 0,
            "heal": 0,
            "city": "辽宁",
            "n_confirm": 3,
            "n_suspect": 0,
            "n_dead": 0,
            "n_heal": 0
        }, {
            "confirm": 4533,
            "dead": 106,
            "heal": 60,
            "suspect": 6973,
            "area": "全国",
            "country": "全国",
            "city": "全国",
            "n_confirm": 4,
            "n_suspect": 0,
            "n_dead": 0,
            "n_heal": 0
        }]

    def testCheckRegister(self):
        assert check_whether_register("订阅湖北") == True
        assert check_whether_register("不订阅") == False
        assert check_whether_register("订阅") == False

    def testCheckUnregist(self):
        assert check_whether_unregist("取消湖北") == True
        assert check_whether_unregist("取消") == False
        assert check_whether_unregist("取关湖北") == True
        assert re.subn(UN_REGIST_PATTERN2, "", "取消湖北")[0] == '湖北'
        assert re.subn(UN_REGIST_PATTERN2, "", "取消关注湖北")[0] == '湖北'
        assert re.subn(UN_REGIST_PATTERN2, "", "取关湖北")[0] == '湖北'

    def test_user_subscribe(self):
        conn = connect_redis()
        succ, failed = user_subscribe(conn, 'test', '订阅湖北', jieba)
        assert succ == ['湖北']

    def test_user_unsubscribe(self):
        conn = connect_redis()
        # 完成数据转化并更新数据库
        self.sp.change_raw_data_format(self.data2)
        user_subscribe(conn, 'test', '订阅湖北', jieba)
        succ, failed = user_unsubscribe_multi(conn, 'test', '取消关注湖北', jieba)
        assert succ == ['湖北']
        succ, failed = user_subscribe(conn, 'test', '订阅湖北重庆', jieba)
        assert succ == ['湖北', '重庆']
        succ, failed = user_unsubscribe_multi(conn, 'test', '取消重庆市', jieba)
        assert succ == ['重庆']
        succ, failed = user_unsubscribe_multi(conn, 'test', '取关全国', jieba)
        assert succ == ['全部']
        succ, failed = user_unsubscribe_multi(conn, 'test', '取消湖南', jieba)
        assert succ == [] and failed == ['湖南']

    def test_do_ncov_update(self):
        # 完成数据转化并更新数据库
        last = self.sp.change_raw_data_format(self.data1)
        now = self.sp.change_raw_data_format(self.data2)
        update_city = self.sp.parse_increase_info(now, last)
        self.sp.re.set(SHOULD_UPDATE, 1)
        save_json_info_as_key(self.sp.re, UPDATE_CITY, update_city)
        itchat.auto_login()
        user_subscribe(self.sp.re, 'filehelper', '订阅湖北重庆', jieba)
        do_ncov_update(self.sp.re, itchat)

    def test_start_server(self):
        succ, failed = user_subscribe(self.sp.re, 'filehelper', '订阅全国', jieba)
        assert len(succ) == 1
        p = threading.Thread(target=self.save_data_loop)
        p.start()
        start_server()

    def save_data_loop(self):
        while True:
            self.sp.re.set(SHOULD_UPDATE, 1)
            save_json_info_as_key(self.sp.re, UPDATE_CITY, self.update_city)
            time.sleep(10)
class testNcovWeRobot(unittest.TestCase):
    def setUp(self) -> None:
        self.sp = TXSpider()

    def test_get_info(self):
        data = self.sp.get_raw_real_time_info()
        assert len(data) > 0

    def test_parse_info(self):
        data1 = [{
            "country": "中国",
            "area": "湖北",
            "city": "武汉",
            "confirm": 618,
            "suspect": 0,
            "dead": 45,
            "heal": 40
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "黄冈",
            "confirm": 122,
            "suspect": 0,
            "dead": 2,
            "heal": 2
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "孝感",
            "confirm": 55,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "荆门",
            "confirm": 38,
            "suspect": 0,
            "dead": 1,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "恩施州",
            "confirm": 17,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "荆州",
            "confirm": 33,
            "suspect": 0,
            "dead": 2,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "仙桃",
            "confirm": 11,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "十堰",
            "confirm": 20,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "随州",
            "confirm": 36,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "天门",
            "confirm": 5,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "宜昌",
            "confirm": 20,
            "suspect": 0,
            "dead": 1,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "鄂州",
            "confirm": 1,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "咸宁",
            "confirm": 43,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "广东",
            "city": "广州",
            "confirm": 17,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "加拿大",
            "area": "",
            "city": "",
            "confirm": 1,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "法国",
            "area": "",
            "city": "",
            "confirm": 3,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }]

        data2 = [{
            "country": "中国",
            "area": "湖北",
            "city": "武汉",
            "confirm": 698,
            "suspect": 0,
            "dead": 45,
            "heal": 40
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "黄冈",
            "confirm": 122,
            "suspect": 0,
            "dead": 2,
            "heal": 2
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "孝感",
            "confirm": 55,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "荆门",
            "confirm": 38,
            "suspect": 0,
            "dead": 1,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "恩施州",
            "confirm": 17,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "荆州",
            "confirm": 33,
            "suspect": 0,
            "dead": 2,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "仙桃",
            "confirm": 11,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "十堰",
            "confirm": 20,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "随州",
            "confirm": 36,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "天门",
            "confirm": 5,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "宜昌",
            "confirm": 20,
            "suspect": 0,
            "dead": 1,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "鄂州",
            "confirm": 1,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "湖北",
            "city": "咸宁",
            "confirm": 43,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "中国",
            "area": "广东",
            "city": "广州",
            "confirm": 17,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "加拿大",
            "area": "",
            "city": "",
            "confirm": 2,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }, {
            "country": "法国",
            "area": "",
            "city": "",
            "confirm": 3,
            "suspect": 0,
            "dead": 0,
            "heal": 0
        }]

        last = self.sp.change_raw_data_format(data1)
        now = self.sp.change_raw_data_format(data2)
        last['全国']['confirm'] = 2714
        update_city = self.sp.parse_increase_info(now, last)
        print(update_city)
        assert len(update_city) == 4
        assert update_city[0]['city'] == '武汉'
        assert update_city[1]['area'] == '加拿大'
        assert update_city[2]['area'] == '湖北'
        assert update_city[3]['area'] == '全国'

    def test_get_state_all(self):
        state_dict = self.sp.get_state_all()
        print(state_dict)

    def test_get_short_name(self):
        area1 = '重庆市'
        area2 = '重庆'
        area3 = '某某自治区'
        area4 = '杭州'
        assert re.subn(AREA_TAIL, '', area1)[0] == '重庆'
        assert re.subn(AREA_TAIL, '', area2)[0] == '重庆'
        assert re.subn(AREA_TAIL, '', area3)[0] == '某某'
        assert re.subn(AREA_TAIL, '', area4)[0] == '杭州'

    def test_fill_unknown(self):
        data = [{
            'confirm': 2823,
            'dead': 81,
            'heal': 55,
            'suspect': 5794,
            'country': '中国'
        }]
        res = [{
            'confirm': 2823,
            'dead': 81,
            'heal': 55,
            'suspect': 5794,
            'area': '中国',
            'country': '中国',
            'city': '中国'
        }]
        assert res == self.sp.fill_unknow(data)

    def test_main(self):
        self.sp.main()