Skip to content

Commit

Permalink
feat: 添加自动跑商完整测试
Browse files Browse the repository at this point in the history
  • Loading branch information
Night-stars-1 committed Apr 12, 2024
1 parent 6467a43 commit c52b73a
Show file tree
Hide file tree
Showing 20 changed files with 585 additions and 416 deletions.
21 changes: 11 additions & 10 deletions app/common/running_business_config.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"""
Author: Night-stars-1 nujj1042633805@gmail.com
Date: 2024-04-11 20:58:19
LastEditTime: 2024-04-11 21:17:28
LastEditTime: 2024-04-12 21:06:41
LastEditors: Night-stars-1 nujj1042633805@gmail.com
"""

Expand All @@ -11,12 +11,13 @@
class RunningBusinessConfig(QConfig):
"""Config of application"""

七号自由港 = ConfigItem("RunningBusiness", "7号自由港", "0", None)
澄明数据中心 = ConfigItem("RunningBusiness", "澄明数据中心", "0", None)
阿妮塔战备工厂 = ConfigItem("RunningBusiness", "阿妮塔战备工厂", "0", None)
阿妮塔能源研究所 = ConfigItem("RunningBusiness", "阿妮塔能源研究所", "0", None)
淘金乐园 = ConfigItem("RunningBusiness", "淘金乐园", "0", None)
曼德矿场 = ConfigItem("RunningBusiness", "曼德矿场", "0", None)
荒原站 = ConfigItem("RunningBusiness", "荒原站", "0", None)
铁盟哨站 = ConfigItem("RunningBusiness", "铁盟哨站", "0", None)
修格里城 = ConfigItem("RunningBusiness", "修格里城", "0", None)
七号自由港 = ConfigItem("RunningBusiness", "7号自由港", 0, None)
澄明数据中心 = ConfigItem("RunningBusiness", "澄明数据中心", 0, None)
阿妮塔战备工厂 = ConfigItem("RunningBusiness", "阿妮塔战备工厂", 0, None)
阿妮塔能源研究所 = ConfigItem("RunningBusiness", "阿妮塔能源研究所", 0, None)
淘金乐园 = ConfigItem("RunningBusiness", "淘金乐园", 0, None)
曼德矿场 = ConfigItem("RunningBusiness", "曼德矿场", 0, None)
荒原站 = ConfigItem("RunningBusiness", "荒原站", 0, None)
铁盟哨站 = ConfigItem("RunningBusiness", "铁盟哨站", 0, None)
修格里城 = ConfigItem("RunningBusiness", "修格里城", 0, None)
priceThreshold = ConfigItem("RunningBusiness", "priceThreshold", 500, None)
7 changes: 4 additions & 3 deletions app/common/worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,15 @@


class Worker(QThread):
def __init__(self, func, stop, parent=None):
super(Worker, self).__init__(parent)
def __init__(self, func, stop, **kargs):
super(Worker, self).__init__()
self.func = func
self.stop_func = stop
self.kargs = kargs

def run(self):
try:
self.func(cfg.adbOrder.value, cfg.adbPath.value)
self.func(**self.kargs)
except StopExecution:
pass

Expand Down
60 changes: 60 additions & 0 deletions app/components/settings/spin_box_setting_card.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
"""
Author: Night-stars-1 nujj1042633805@gmail.com
Date: 2024-04-07 23:54:39
LastEditTime: 2024-04-12 13:01:47
LastEditors: Night-stars-1 nujj1042633805@gmail.com
"""

from typing import Union

from PyQt5.QtCore import Qt, pyqtSignal
from PyQt5.QtGui import QIcon
from qfluentwidgets import ConfigItem, FluentIconBase, SettingCard, SpinBox, qconfig


class SpinBoxSettingCard(SettingCard):
"""Setting card with a push button"""

text_change = pyqtSignal()

def __init__(
self,
configItem: ConfigItem,
icon: Union[str, QIcon, FluentIconBase],
title: str,
content=None,
spin_box_min: int = 0,
spin_box_max: int = 100,
parent=None,
):
"""
Parameters
----------
text: str
the text of push button
icon: str | QIcon | FluentIconBase
the icon to be drawn
title: str
the title of card
content: str
the content of card
parent: QWidget
parent widget
"""
super().__init__(icon, title, content, parent)
self.configItem = configItem

self.spinBox = SpinBox(self)
self.spinBox.setRange(spin_box_min, spin_box_max)
self.spinBox.setValue(configItem.value)

self.spinBox.valueChanged.connect(self.valueChanged)
self.hBoxLayout.addWidget(self.spinBox, 0, Qt.AlignRight)
self.hBoxLayout.addSpacing(16)

def valueChanged(self, value: int):
qconfig.set(self.configItem, value)
8 changes: 5 additions & 3 deletions app/view/home_interface.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"""
Author: Night-stars-1 nujj1042633805@gmail.com
Date: 2024-04-02 19:12:22
LastEditTime: 2024-04-08 21:15:56
LastEditTime: 2024-04-12 01:43:08
LastEditors: Night-stars-1 nujj1042633805@gmail.com
"""

Expand All @@ -12,7 +12,7 @@
from PyQt5.QtWidgets import QLabel, QVBoxLayout, QWidget
from qfluentwidgets import FluentIcon, ScrollArea, isDarkTheme

from ..common.config import REPO_URL
from ..common.config import REPO_URL, cfg
from ..common.style_sheet import StyleSheet
from ..common.worker import Worker
from ..components.link_card import LinkCardView
Expand Down Expand Up @@ -126,7 +126,9 @@ def _run(self):
self.run.titleLabel.setText("停止")
from main import main, stop

self.workers = Worker(main, stop)
self.workers = Worker(
main, stop, order=cfg.adbOrder.value, path=cfg.adbPath.value
)
self.workers.finished.connect(lambda: self.on_worker_finished(self.workers))
self.workers.start()
else:
Expand Down
50 changes: 30 additions & 20 deletions app/view/running_business_interface.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"""
Author: Night-stars-1 nujj1042633805@gmail.com
Date: 2024-04-10 22:54:08
LastEditTime: 2024-04-11 21:45:09
LastEditTime: 2024-04-12 21:06:56
LastEditors: Night-stars-1 nujj1042633805@gmail.com
"""

Expand All @@ -14,7 +14,7 @@

from ..common.config import cfg
from ..common.style_sheet import StyleSheet
from ..components.settings.line_edit_setting_card import LineEditSettingCard
from ..components.settings.spin_box_setting_card import SpinBoxSettingCard


class RunningBusinessInterface(ScrollArea):
Expand All @@ -35,67 +35,76 @@ def loadSamples(self):
# basic input samples
self.configGroup = SettingCardGroup("进货书设置", self.scrollWidget)

self.七号自由港 = LineEditSettingCard(
self.七号自由港 = SpinBoxSettingCard(
cfg.七号自由港,
"七号自由港单次最大进货书",
FIF.ACCEPT,
"七号自由港",
"七号自由港单次最大进货书",
parent=self.configGroup,
)
self.澄明数据中心 = LineEditSettingCard(
self.澄明数据中心 = SpinBoxSettingCard(
cfg.澄明数据中心,
"澄明数据中心单次最大进货书",
FIF.ACCEPT,
"澄明数据中心",
"澄明数据中心单次最大进货书",
parent=self.configGroup,
)
self.阿妮塔战备工厂 = LineEditSettingCard(
self.阿妮塔战备工厂 = SpinBoxSettingCard(
cfg.阿妮塔战备工厂,
"阿妮塔战备工厂单次最大进货书",
FIF.ACCEPT,
"阿妮塔战备工厂",
"阿妮塔战备工厂单次最大进货书",
parent=self.configGroup,
)
self.阿妮塔能源研究所 = LineEditSettingCard(
self.阿妮塔能源研究所 = SpinBoxSettingCard(
cfg.阿妮塔能源研究所,
"阿妮塔能源研究所单次最大进货书",
FIF.ACCEPT,
"阿妮塔能源研究所",
"阿妮塔能源研究所单次最大进货书",
parent=self.configGroup,
)
self.淘金乐园 = LineEditSettingCard(
self.淘金乐园 = SpinBoxSettingCard(
cfg.淘金乐园,
"淘金乐园单次最大进货书",
FIF.ACCEPT,
"淘金乐园",
"淘金乐园单次最大进货书",
parent=self.configGroup,
)
self.曼德矿场 = LineEditSettingCard(
self.曼德矿场 = SpinBoxSettingCard(
cfg.曼德矿场,
"曼德矿场单次最大进货书",
FIF.ACCEPT,
"曼德矿场",
"曼德矿场单次最大进货书",
parent=self.configGroup,
)
self.荒原站 = LineEditSettingCard(
self.荒原站 = SpinBoxSettingCard(
cfg.荒原站,
"荒原站单次最大进货书",
FIF.ACCEPT,
"荒原站",
"荒原站单次最大进货书",
parent=self.configGroup,
)
self.铁盟哨站 = LineEditSettingCard(
self.铁盟哨站 = SpinBoxSettingCard(
cfg.铁盟哨站,
"铁盟哨站单次最大进货书",
FIF.ACCEPT,
"铁盟哨站",
"铁盟哨站单次最大进货书",
parent=self.configGroup,
)
self.修格里城 = LineEditSettingCard(
self.修格里城 = SpinBoxSettingCard(
cfg.修格里城,
"修格里城单次最大进货书",
FIF.ACCEPT,
"修格里城",
"修格里城单次最大进货书",
parent=self.configGroup,
)
self.priceThreshold = SpinBoxSettingCard(
cfg.priceThreshold,
FIF.ACCEPT,
"价格阈值",
"低价值商品统计阈值",
spin_box_min=0,
spin_box_max=1000,
parent=self.configGroup,
)

Expand Down Expand Up @@ -128,6 +137,7 @@ def __initLayout(self):
self.configGroup.addSettingCard(self.荒原站)
self.configGroup.addSettingCard(self.铁盟哨站)
self.configGroup.addSettingCard(self.修格里城)
self.configGroup.addSettingCard(self.priceThreshold)

# add setting card group to layout
self.expandLayout.setSpacing(28)
Expand Down
60 changes: 33 additions & 27 deletions app/view/setting_interface.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,30 @@
# coding:utf-8
from qfluentwidgets import SettingCardGroup, ScrollArea, ExpandLayout, PrimaryPushSettingCard, InfoBar, InfoBarPosition, SwitchSettingCard
from loguru import logger
from PyQt5.QtCore import QStandardPaths, Qt
from PyQt5.QtWidgets import QLabel, QWidget
from qfluentwidgets import ExpandLayout
from qfluentwidgets import FluentIcon as FIF
from PyQt5.QtCore import Qt, QStandardPaths
from PyQt5.QtWidgets import QWidget, QLabel

from ..components.settings.line_edit_setting_card import LineEditSettingCard
from ..common.config import cfg
from ..common.style_sheet import StyleSheet
from qfluentwidgets import (
InfoBar,
InfoBarPosition,
PrimaryPushSettingCard,
ScrollArea,
SettingCardGroup,
SwitchSettingCard,
)

from core.goods.kmou import get_goods_info as get_goods_info_kmou
from core.goods.srap import get_goods_info as get_goods_info_srap
from demo import run

from ..common.config import cfg
from ..common.signal_bus import signalBus
from ..common.style_sheet import StyleSheet
from ..common.worker import Worker
from ..components.settings.line_edit_setting_card import LineEditSettingCard


class SettingInterface(ScrollArea):
""" Setting interface """
"""Setting interface"""

def __init__(self, parent=None):
super().__init__(parent=parent)
Expand All @@ -26,43 +35,38 @@ def __init__(self, parent=None):
self.settingLabel = QLabel("设置", self)

# music folders
self.musicInThisPCGroup = SettingCardGroup(
"配置", self.scrollWidget)
self.musicInThisPCGroup = SettingCardGroup("配置", self.scrollWidget)
self.goodsTypeCard = SwitchSettingCard(
FIF.TAG,
"数据源",
"On为 KMou,Off为 SRAP",
configItem=cfg.goodsType,
parent=self.musicInThisPCGroup
parent=self.musicInThisPCGroup,
)
self.uuidCard = LineEditSettingCard(
cfg.uuid,
"KMou商品请求 UUID",
FIF.PALETTE,
"KMou商品请求 UUID",
parent=self.musicInThisPCGroup,
isPassword=True
isPassword=True,
)
self.testCard = PrimaryPushSettingCard(
"测试",
FIF.TAG,
"商品请求测试",
"商品请求测试",
self.musicInThisPCGroup
"测试", FIF.TAG, "商品请求测试", "商品请求测试", self.musicInThisPCGroup
)
self.adbPathCard = LineEditSettingCard(
cfg.adbPath,
"ADB路径",
FIF.PALETTE,
"ADB程序路径",
parent=self.musicInThisPCGroup
parent=self.musicInThisPCGroup,
)
self.adbOrderCard = LineEditSettingCard(
cfg.adbOrder,
"ADB地址",
FIF.PALETTE,
"ADB地址",
parent=self.musicInThisPCGroup
parent=self.musicInThisPCGroup,
)
self.__initWidget()

Expand All @@ -72,11 +76,11 @@ def __initWidget(self):
self.setViewportMargins(0, 80, 0, 20)
self.setWidget(self.scrollWidget)
self.setWidgetResizable(True)
self.setObjectName('settingInterface')
self.setObjectName("settingInterface")

# initialize style sheet
self.scrollWidget.setObjectName('scrollWidget')
self.settingLabel.setObjectName('settingLabel')
self.scrollWidget.setObjectName("scrollWidget")
self.settingLabel.setObjectName("settingLabel")
StyleSheet.SETTING_INTERFACE.apply(self)

# initialize layout
Expand All @@ -99,13 +103,15 @@ def __initLayout(self):
self.expandLayout.addWidget(self.musicInThisPCGroup)

def __connectSignalToSlot(self):
""" connect signal to slot """
"""connect signal to slot"""
self.testCard.clicked.connect(self.createSuccessInfoBar)

def createSuccessInfoBar(self):
self.workers = Worker(run, run)
from demo import run
signalBus.switchToCard.emit("LoggerInterface")
self.workers = Worker(run, run, city_config=cfg.toDict()["RunningBusiness"])
self.workers.start()
'''
"""
InfoBar.success(
title="成功",
content=get_goods_info_kmou(cfg.uuid.value) if cfg.goodsType.value else get_goods_info_srap(),
Expand All @@ -115,4 +121,4 @@ def createSuccessInfoBar(self):
duration=2000,
parent=self
)
'''
"""
Loading

0 comments on commit c52b73a

Please sign in to comment.