Loading cogdb/eddb.py +6 −4 Original line number Diff line number Diff line Loading @@ -46,7 +46,7 @@ LEN = { # Lengths for strings stored in the db "settlement_security": 10, "settlement_size": 3, "ship": 20, "station": 38, "station": 41, "station_pad": 4, "station_type": 24, "system": 30, Loading Loading @@ -187,7 +187,7 @@ class Faction(Base): __tablename__ = "factions" id = sqla.Column(sqla.Integer, primary_key=True) name = sqla.Column(sqla.String(LEN["faction"])) name = sqla.Column(sqla.String(LEN["faction"]), index=True) is_player_faction = sqla.Column(sqla.Boolean) home_system_id = sqla.Column(sqla.Integer) # Makes circular foreigns. allegiance_id = sqla.Column(sqla.Integer, sqla.ForeignKey('allegiance.id')) Loading Loading @@ -640,7 +640,7 @@ class Station(Base): __tablename__ = "stations" id = sqla.Column(sqla.Integer, primary_key=True) name = sqla.Column(sqla.String(LEN["station"])) name = sqla.Column(sqla.String(LEN["station"]), index=True) distance_to_star = sqla.Column(sqla.Integer) is_planetary = sqla.Column(sqla.Boolean) max_landing_pad_size = sqla.Column(sqla.String(LEN["station_pad"])) Loading Loading @@ -689,7 +689,7 @@ class System(Base): __tablename__ = "systems" id = sqla.Column(sqla.Integer, primary_key=True) name = sqla.Column(sqla.String(LEN["system"])) name = sqla.Column(sqla.String(LEN["system"]), index=True) population = sqla.Column(sqla.BigInteger) needs_permit = sqla.Column(sqla.Integer) edsm_id = sqla.Column(sqla.Integer) Loading Loading @@ -1021,6 +1021,7 @@ def preload_economies(session): Economy(id=14, text="Prison", eddn="Prison"), Economy(id=15, text="Carrier", eddn="Carrier"), Economy(id=16, text="Damaged", eddn="Damaged"), Economy(id=17, text="Repair", eddn="Repair"), ]) Loading Loading @@ -1176,6 +1177,7 @@ def preload_station_types(session): StationType(id=22, text='Unknown Dockable'), StationType(id=23, text='Non-Dockable Orbital'), StationType(id=24, text='Fleet Carrier', eddn='FleetCarrier'), StationType(id=25, text='Odyssey Settlement', eddn='OdysseySettlement'), ]) Loading cogdb/schema.py +16 −16 Original line number Diff line number Diff line Loading @@ -48,7 +48,7 @@ class DiscordUser(Base): id = sqla.Column(sqla.BigInteger, primary_key=True) # Discord id display_name = sqla.Column(sqla.String(LEN_NAME)) pref_name = sqla.Column(sqla.String(LEN_NAME), unique=True, nullable=False) # pref_name == display_name until change pref_name = sqla.Column(sqla.String(LEN_NAME), index=True, nullable=False) # pref_name == display_name until change pref_cry = sqla.Column(sqla.String(LEN_NAME), default='') # Relationships Loading Loading @@ -110,7 +110,7 @@ class FortUser(Base): __tablename__ = 'hudson_fort_users' id = sqla.Column(sqla.Integer, primary_key=True) name = sqla.Column(sqla.String(LEN_NAME), unique=True) # Undeclared FK to discord_users name = sqla.Column(sqla.String(LEN_NAME), index=True) # Undeclared FK to discord_users row = sqla.Column(sqla.Integer, unique=True) cry = sqla.Column(sqla.String(LEN_NAME), default='') Loading Loading @@ -179,7 +179,7 @@ class FortSystem(Base): header = ['Type', 'System', 'Missing', 'Merits (Fort%/UM%)', 'Notes'] id = sqla.Column(sqla.Integer, primary_key=True) name = sqla.Column(sqla.String(LEN_NAME), unique=True) name = sqla.Column(sqla.String(LEN_NAME), index=True) type = sqla.Column(sqla.Enum(EFortType), default=EFortType.fort) fort_status = sqla.Column(sqla.Integer, default=0) trigger = sqla.Column(sqla.Integer, default=1) Loading @@ -188,7 +188,7 @@ class FortSystem(Base): undermine = sqla.Column(sqla.Float, default=0.0) distance = sqla.Column(sqla.Float, default=0.0) notes = sqla.Column(sqla.String(LEN_NAME), default='') sheet_col = sqla.Column(sqla.String(LEN_SHEET_COL), default='') sheet_col = sqla.Column(sqla.String(LEN_SHEET_COL), default='', unique=True) sheet_order = sqla.Column(sqla.Integer) manual_order = sqla.Column(sqla.Integer, nullable=True) Loading Loading @@ -392,7 +392,7 @@ class FortDrop(Base): __tablename__ = 'hudson_fort_merits' id = sqla.Column(sqla.Integer, primary_key=True) amount = sqla.Column(sqla.Integer) amount = sqla.Column(sqla.Integer, default=0, nullable=False) system_id = sqla.Column(sqla.Integer, sqla.ForeignKey('hudson_fort_systems.id'), nullable=False) user_id = sqla.Column(sqla.Integer, sqla.ForeignKey('hudson_fort_users.id'), nullable=False) Loading Loading @@ -465,7 +465,7 @@ class UMUser(Base): __tablename__ = 'hudson_um_users' id = sqla.Column(sqla.Integer, primary_key=True) name = sqla.Column(sqla.String(LEN_NAME), unique=True) # Undeclared FK to discord_users name = sqla.Column(sqla.String(LEN_NAME), index=True) # Undeclared FK to discord_users row = sqla.Column(sqla.Integer, unique=True) cry = sqla.Column(sqla.String(LEN_NAME), default='') Loading Loading @@ -559,10 +559,10 @@ class UMSystem(Base): __tablename__ = 'hudson_um_systems' id = sqla.Column(sqla.Integer, primary_key=True) name = sqla.Column(sqla.String(LEN_NAME), unique=True) type = sqla.Column(sqla.Enum(EUMType)) sheet_col = sqla.Column(sqla.String(LEN_SHEET_COL)) goal = sqla.Column(sqla.Integer) name = sqla.Column(sqla.String(LEN_NAME), index=True) type = sqla.Column(sqla.Enum(EUMType), default=EUMType.control) sheet_col = sqla.Column(sqla.String(LEN_SHEET_COL), unique=True) goal = sqla.Column(sqla.Integer, default=0) security = sqla.Column(sqla.String(LEN_NAME), default='') notes = sqla.Column(sqla.String(LEN_NAME), default='') close_control = sqla.Column(sqla.String(LEN_NAME), default='') Loading Loading @@ -742,8 +742,8 @@ class UMHold(Base): id = sqla.Column(sqla.Integer, primary_key=True) system_id = sqla.Column(sqla.Integer, sqla.ForeignKey('hudson_um_systems.id'), nullable=False) user_id = sqla.Column(sqla.Integer, sqla.ForeignKey('hudson_um_users.id'), nullable=False) held = sqla.Column(sqla.Integer) redeemed = sqla.Column(sqla.Integer) held = sqla.Column(sqla.Integer, default=0, nullable=False) redeemed = sqla.Column(sqla.Integer, default=0, nullable=False) # Relationships user = sqla_orm.relationship('UMUser', uselist=False, back_populates='merits', Loading Loading @@ -786,10 +786,10 @@ class KOS(Base): __tablename__ = 'kos' id = sqla.Column(sqla.Integer, primary_key=True) cmdr = sqla.Column(sqla.String(LEN_NAME), unique=True, nullable=False) cmdr = sqla.Column(sqla.String(LEN_NAME), index=True, nullable=False) faction = sqla.Column(sqla.String(LEN_NAME), nullable=False) reason = sqla.Column(sqla.String(LEN_REASON), nullable=False) is_friendly = sqla.Column(sqla.Boolean) is_friendly = sqla.Column(sqla.Boolean, default=False) def __repr__(self): keys = ['id', 'cmdr', 'faction', 'reason', 'is_friendly'] Loading Loading @@ -894,7 +894,7 @@ class TrackSystem(Base): __tablename__ = 'carriers_systems' system = sqla.Column(sqla.String(LEN_NAME), primary_key=True) distance = sqla.Column(sqla.Integer) distance = sqla.Column(sqla.Integer, default=15, nullable=False) def __repr__(self): keys = ['system', 'distance'] Loading Loading @@ -947,7 +947,7 @@ class TrackByID(Base): system = sqla.Column(sqla.String(LEN_NAME), default="") # This flag indicates user requested this ID ALWAYS be tracked, regardless of location. override = sqla.Column(sqla.Boolean, default=False) updated_at = sqla.Column(sqla.DateTime, default=datetime.datetime.utcnow) # All dates UTC updated_at = sqla.Column(sqla.DateTime, default=datetime.datetime.utcnow, index=True) # All dates UTC def __repr__(self): keys = ['id', 'squad', 'system', 'override', 'updated_at'] Loading tests/cog/test_actions.py +3 −2 Original line number Diff line number Diff line Loading @@ -143,7 +143,8 @@ async def test_cmd_admin_removeum_fail(f_admins, f_bot, db_cleanup): @pytest.mark.asyncio async def test_cmd_admin_removeum(f_admins, f_dusers, f_bot, f_asheet_umscanner, f_um_testbed, patch_scanners, db_cleanup, f_umformula_values): async def test_cmd_admin_removeum(f_bot, f_dusers, f_admins, f_um_testbed, f_umformula_values, patch_scanners, db_cleanup): fake_um = cog.actions.SCANNERS['hudson_undermine'] fake_um._values = [f_umformula_values[4:]] Loading Loading @@ -1356,7 +1357,7 @@ async def test_cmd_near_if(f_bot): await action_map(msg, f_bot).execute() actual = str(f_bot.send_message.call_args).replace("\\n", "\n") assert "LHS 397 | 19.32 | [L] Zillig Depot" in actual assert "Wolf 294 " in actual def test_process_system_args(): Loading tests/conftest.py +5 −0 Original line number Diff line number Diff line Loading @@ -262,6 +262,7 @@ def f_admins(session): yield admins session.rollback() session.query(AdminPerm).delete() session.commit() Loading @@ -277,6 +278,7 @@ def f_cperms(session): yield perms session.rollback() session.query(ChannelPerm).delete() session.commit() Loading @@ -292,6 +294,7 @@ def f_rperms(session): yield perms session.rollback() session.query(RolePerm).delete() session.commit() Loading @@ -309,6 +312,7 @@ def f_fortorders(session): yield systems session.rollback() session.query(FortOrder).delete() session.commit() Loading @@ -328,6 +332,7 @@ def f_kos(session): yield kos_rows session.rollback() session.query(KOS).delete() session.commit() Loading Loading
cogdb/eddb.py +6 −4 Original line number Diff line number Diff line Loading @@ -46,7 +46,7 @@ LEN = { # Lengths for strings stored in the db "settlement_security": 10, "settlement_size": 3, "ship": 20, "station": 38, "station": 41, "station_pad": 4, "station_type": 24, "system": 30, Loading Loading @@ -187,7 +187,7 @@ class Faction(Base): __tablename__ = "factions" id = sqla.Column(sqla.Integer, primary_key=True) name = sqla.Column(sqla.String(LEN["faction"])) name = sqla.Column(sqla.String(LEN["faction"]), index=True) is_player_faction = sqla.Column(sqla.Boolean) home_system_id = sqla.Column(sqla.Integer) # Makes circular foreigns. allegiance_id = sqla.Column(sqla.Integer, sqla.ForeignKey('allegiance.id')) Loading Loading @@ -640,7 +640,7 @@ class Station(Base): __tablename__ = "stations" id = sqla.Column(sqla.Integer, primary_key=True) name = sqla.Column(sqla.String(LEN["station"])) name = sqla.Column(sqla.String(LEN["station"]), index=True) distance_to_star = sqla.Column(sqla.Integer) is_planetary = sqla.Column(sqla.Boolean) max_landing_pad_size = sqla.Column(sqla.String(LEN["station_pad"])) Loading Loading @@ -689,7 +689,7 @@ class System(Base): __tablename__ = "systems" id = sqla.Column(sqla.Integer, primary_key=True) name = sqla.Column(sqla.String(LEN["system"])) name = sqla.Column(sqla.String(LEN["system"]), index=True) population = sqla.Column(sqla.BigInteger) needs_permit = sqla.Column(sqla.Integer) edsm_id = sqla.Column(sqla.Integer) Loading Loading @@ -1021,6 +1021,7 @@ def preload_economies(session): Economy(id=14, text="Prison", eddn="Prison"), Economy(id=15, text="Carrier", eddn="Carrier"), Economy(id=16, text="Damaged", eddn="Damaged"), Economy(id=17, text="Repair", eddn="Repair"), ]) Loading Loading @@ -1176,6 +1177,7 @@ def preload_station_types(session): StationType(id=22, text='Unknown Dockable'), StationType(id=23, text='Non-Dockable Orbital'), StationType(id=24, text='Fleet Carrier', eddn='FleetCarrier'), StationType(id=25, text='Odyssey Settlement', eddn='OdysseySettlement'), ]) Loading
cogdb/schema.py +16 −16 Original line number Diff line number Diff line Loading @@ -48,7 +48,7 @@ class DiscordUser(Base): id = sqla.Column(sqla.BigInteger, primary_key=True) # Discord id display_name = sqla.Column(sqla.String(LEN_NAME)) pref_name = sqla.Column(sqla.String(LEN_NAME), unique=True, nullable=False) # pref_name == display_name until change pref_name = sqla.Column(sqla.String(LEN_NAME), index=True, nullable=False) # pref_name == display_name until change pref_cry = sqla.Column(sqla.String(LEN_NAME), default='') # Relationships Loading Loading @@ -110,7 +110,7 @@ class FortUser(Base): __tablename__ = 'hudson_fort_users' id = sqla.Column(sqla.Integer, primary_key=True) name = sqla.Column(sqla.String(LEN_NAME), unique=True) # Undeclared FK to discord_users name = sqla.Column(sqla.String(LEN_NAME), index=True) # Undeclared FK to discord_users row = sqla.Column(sqla.Integer, unique=True) cry = sqla.Column(sqla.String(LEN_NAME), default='') Loading Loading @@ -179,7 +179,7 @@ class FortSystem(Base): header = ['Type', 'System', 'Missing', 'Merits (Fort%/UM%)', 'Notes'] id = sqla.Column(sqla.Integer, primary_key=True) name = sqla.Column(sqla.String(LEN_NAME), unique=True) name = sqla.Column(sqla.String(LEN_NAME), index=True) type = sqla.Column(sqla.Enum(EFortType), default=EFortType.fort) fort_status = sqla.Column(sqla.Integer, default=0) trigger = sqla.Column(sqla.Integer, default=1) Loading @@ -188,7 +188,7 @@ class FortSystem(Base): undermine = sqla.Column(sqla.Float, default=0.0) distance = sqla.Column(sqla.Float, default=0.0) notes = sqla.Column(sqla.String(LEN_NAME), default='') sheet_col = sqla.Column(sqla.String(LEN_SHEET_COL), default='') sheet_col = sqla.Column(sqla.String(LEN_SHEET_COL), default='', unique=True) sheet_order = sqla.Column(sqla.Integer) manual_order = sqla.Column(sqla.Integer, nullable=True) Loading Loading @@ -392,7 +392,7 @@ class FortDrop(Base): __tablename__ = 'hudson_fort_merits' id = sqla.Column(sqla.Integer, primary_key=True) amount = sqla.Column(sqla.Integer) amount = sqla.Column(sqla.Integer, default=0, nullable=False) system_id = sqla.Column(sqla.Integer, sqla.ForeignKey('hudson_fort_systems.id'), nullable=False) user_id = sqla.Column(sqla.Integer, sqla.ForeignKey('hudson_fort_users.id'), nullable=False) Loading Loading @@ -465,7 +465,7 @@ class UMUser(Base): __tablename__ = 'hudson_um_users' id = sqla.Column(sqla.Integer, primary_key=True) name = sqla.Column(sqla.String(LEN_NAME), unique=True) # Undeclared FK to discord_users name = sqla.Column(sqla.String(LEN_NAME), index=True) # Undeclared FK to discord_users row = sqla.Column(sqla.Integer, unique=True) cry = sqla.Column(sqla.String(LEN_NAME), default='') Loading Loading @@ -559,10 +559,10 @@ class UMSystem(Base): __tablename__ = 'hudson_um_systems' id = sqla.Column(sqla.Integer, primary_key=True) name = sqla.Column(sqla.String(LEN_NAME), unique=True) type = sqla.Column(sqla.Enum(EUMType)) sheet_col = sqla.Column(sqla.String(LEN_SHEET_COL)) goal = sqla.Column(sqla.Integer) name = sqla.Column(sqla.String(LEN_NAME), index=True) type = sqla.Column(sqla.Enum(EUMType), default=EUMType.control) sheet_col = sqla.Column(sqla.String(LEN_SHEET_COL), unique=True) goal = sqla.Column(sqla.Integer, default=0) security = sqla.Column(sqla.String(LEN_NAME), default='') notes = sqla.Column(sqla.String(LEN_NAME), default='') close_control = sqla.Column(sqla.String(LEN_NAME), default='') Loading Loading @@ -742,8 +742,8 @@ class UMHold(Base): id = sqla.Column(sqla.Integer, primary_key=True) system_id = sqla.Column(sqla.Integer, sqla.ForeignKey('hudson_um_systems.id'), nullable=False) user_id = sqla.Column(sqla.Integer, sqla.ForeignKey('hudson_um_users.id'), nullable=False) held = sqla.Column(sqla.Integer) redeemed = sqla.Column(sqla.Integer) held = sqla.Column(sqla.Integer, default=0, nullable=False) redeemed = sqla.Column(sqla.Integer, default=0, nullable=False) # Relationships user = sqla_orm.relationship('UMUser', uselist=False, back_populates='merits', Loading Loading @@ -786,10 +786,10 @@ class KOS(Base): __tablename__ = 'kos' id = sqla.Column(sqla.Integer, primary_key=True) cmdr = sqla.Column(sqla.String(LEN_NAME), unique=True, nullable=False) cmdr = sqla.Column(sqla.String(LEN_NAME), index=True, nullable=False) faction = sqla.Column(sqla.String(LEN_NAME), nullable=False) reason = sqla.Column(sqla.String(LEN_REASON), nullable=False) is_friendly = sqla.Column(sqla.Boolean) is_friendly = sqla.Column(sqla.Boolean, default=False) def __repr__(self): keys = ['id', 'cmdr', 'faction', 'reason', 'is_friendly'] Loading Loading @@ -894,7 +894,7 @@ class TrackSystem(Base): __tablename__ = 'carriers_systems' system = sqla.Column(sqla.String(LEN_NAME), primary_key=True) distance = sqla.Column(sqla.Integer) distance = sqla.Column(sqla.Integer, default=15, nullable=False) def __repr__(self): keys = ['system', 'distance'] Loading Loading @@ -947,7 +947,7 @@ class TrackByID(Base): system = sqla.Column(sqla.String(LEN_NAME), default="") # This flag indicates user requested this ID ALWAYS be tracked, regardless of location. override = sqla.Column(sqla.Boolean, default=False) updated_at = sqla.Column(sqla.DateTime, default=datetime.datetime.utcnow) # All dates UTC updated_at = sqla.Column(sqla.DateTime, default=datetime.datetime.utcnow, index=True) # All dates UTC def __repr__(self): keys = ['id', 'squad', 'system', 'override', 'updated_at'] Loading
tests/cog/test_actions.py +3 −2 Original line number Diff line number Diff line Loading @@ -143,7 +143,8 @@ async def test_cmd_admin_removeum_fail(f_admins, f_bot, db_cleanup): @pytest.mark.asyncio async def test_cmd_admin_removeum(f_admins, f_dusers, f_bot, f_asheet_umscanner, f_um_testbed, patch_scanners, db_cleanup, f_umformula_values): async def test_cmd_admin_removeum(f_bot, f_dusers, f_admins, f_um_testbed, f_umformula_values, patch_scanners, db_cleanup): fake_um = cog.actions.SCANNERS['hudson_undermine'] fake_um._values = [f_umformula_values[4:]] Loading Loading @@ -1356,7 +1357,7 @@ async def test_cmd_near_if(f_bot): await action_map(msg, f_bot).execute() actual = str(f_bot.send_message.call_args).replace("\\n", "\n") assert "LHS 397 | 19.32 | [L] Zillig Depot" in actual assert "Wolf 294 " in actual def test_process_system_args(): Loading
tests/conftest.py +5 −0 Original line number Diff line number Diff line Loading @@ -262,6 +262,7 @@ def f_admins(session): yield admins session.rollback() session.query(AdminPerm).delete() session.commit() Loading @@ -277,6 +278,7 @@ def f_cperms(session): yield perms session.rollback() session.query(ChannelPerm).delete() session.commit() Loading @@ -292,6 +294,7 @@ def f_rperms(session): yield perms session.rollback() session.query(RolePerm).delete() session.commit() Loading @@ -309,6 +312,7 @@ def f_fortorders(session): yield systems session.rollback() session.query(FortOrder).delete() session.commit() Loading @@ -328,6 +332,7 @@ def f_kos(session): yield kos_rows session.rollback() session.query(KOS).delete() session.commit() Loading