Commit eab67f72 authored by Jeremy Pallats's avatar Jeremy Pallats 💬
Browse files

FIX #84: FC Tracking doesn't catch FC within FC KOS list

- Cause was failure to update timestamps, now done.
- Updated !track scan to work, was broken.
- Add missing test.
- FIX: Always show deferred in tests.
- FIX: EDDN tests now with native times for carriers.
parent 2884994c
Loading
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
@@ -890,7 +890,7 @@ To unset override, simply set an empty list of systems.

        globe = cogdb.query.get_current_global(self.session)
        priority, deferred = cogdb.query.fort_get_priority_targets(self.session)
        show_deferred = deferred and (globe.show_almost_done or self.is_near_tick())
        show_deferred = deferred and (globe.show_almost_done or self.is_near_tick()) or cogdb.TEST_DB
        if priority or show_deferred:
            lines += ['\n__Priority Systems__']
            if priority:
@@ -1156,8 +1156,9 @@ class KOS(Action):
            msg = None

        elif self.args.subcmd == 'pull':
            with cfut.ProcessPoolExecutor(max_workers=1) as pool:
                await self.bot.loop.run_in_executor(
                None, get_scanner('hudson_kos').parse_sheet
                    pool, get_scanner('hudson_kos').scheduler_run
                )
            msg = 'KOS list refreshed from sheet.'

@@ -1548,7 +1549,10 @@ class Track(Action):
        """ Subcmd scan for track command. """
        scanner = get_scanner("hudson_carriers")
        await scanner.update_cells()
        await self.bot.loop.run_in_executor(None, scanner.parse_sheet)
        with cfut.ProcessPoolExecutor(max_workers=1) as pool:
            await self.bot.loop.run_in_executor(
                pool, scanner.scheduler_run
            )

        return "Scan finished."

+7 −2
Original line number Diff line number Diff line
@@ -216,7 +216,7 @@ class EDMCJournal():
        id = body["StationName"]
        system = self.parsed["system"]["name"]
        date = self.date_obj
        ids_dict = {id: {'id': id, 'system': system, 'updated_at': date}}
        ids_dict = {id: {'id': id, 'system': system, 'updated_at': date.replace(tzinfo=None)}}

        if cogdb.query.track_ids_check(self.session, id):
            cogdb.query.track_ids_update(self.session, ids_dict)
@@ -563,7 +563,11 @@ def timestamp_is_recent(msg, window=30):
    try:
        parsed_time = datetime.datetime.strptime(msg['header']['gatewayTimestamp'], TIME_STRP_MICRO)
    except ValueError:
        try:
            parsed_time = datetime.datetime.strptime(msg['header']['gatewayTimestamp'], TIME_STRP)
        except ValueError:
            return False

    parsed_time = parsed_time.replace(tzinfo=datetime.timezone.utc)
    return (datetime.datetime.now(datetime.timezone.utc) - parsed_time) < datetime.timedelta(minutes=window)

@@ -661,6 +665,7 @@ def main(): # pragma: no cover
        msg = """Terminating ZMQ connection."""
        print(msg)


# Any time code run, need these dirs to write to
try:
    shutil.rmtree(ALL_MSGS)
+4 −6
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@ from cogdb.schema import (DiscordUser, FortSystem, FortPrep, FortDrop, FortUser,
                          OCRPrep, Global)
from cogdb.eddb import HUDSON_CONTROLS, WINTERS_CONTROLS
from cogdb.scanners import FortScanner
import cogdb

DEFER_MISSING = get_config("limits", "defer_missing", default=750)
MAX_DROP = get_config("limits", "max_drop", default=1000)
@@ -877,11 +876,10 @@ def track_ids_update(session, ids_dict, date_obj=None):
            continue

        data = copy_ids_dict[track.id]
        if data.get("squad", ""):
            track.squad = data['squad']
        if data.get("override", None):
            track.override = data['override']
        track.system = data.get('system', None)
        track.updated_at = data.get('updated_at', date_obj)
        track.squad = data.get("squad", track.squad)
        track.override = data.get("override", track.override)
        track.system = data.get('system', track.system)
        updated += [track.id]

        del copy_ids_dict[track.id]
+5 −5
Original line number Diff line number Diff line
@@ -325,7 +325,7 @@ class UMScanner(FortScanner):
    def __repr__(self):
        return super().__repr__().replace('FortScanner', 'UMScanner')

    def parse_sheet(self, session=None):
    def parse_sheet(self, session):
        """
        Parse the updated sheet and return information to directly pass to scan.

@@ -595,7 +595,7 @@ class KOSScanner(FortScanner):
    def __repr__(self):
        return super().__repr__().replace('FortScanner', 'KOSScanner')

    def parse_sheet(self, session=None):
    def parse_sheet(self, session):
        """
        Parse the updated sheet and return information to directly pass to scan.

@@ -670,7 +670,7 @@ class RecruitsScanner(FortScanner):
    def __repr__(self):
        return super().__repr__().replace('FortScanner', 'RecruitsScanner')

    def parse_sheet(self, session=None):
    def parse_sheet(self, session):
        """
        Unused, remains for consistency of interface.
        """
@@ -718,7 +718,7 @@ class CarrierScanner(FortScanner):
    def __repr__(self):
        return super().__repr__().replace('FortScanner', 'CarrierScanner')

    def parse_sheet(self, session=None):
    def parse_sheet(self, session):
        """
        Push the update of carriers to the database.
        """
@@ -774,7 +774,7 @@ class OCRScanner(FortScanner):
    def __repr__(self):
        return super().__repr__().replace('FortScanner', 'OCRScanner')

    def parse_sheet(self, session=None):
    def parse_sheet(self, session):
        sys_map = self.generate_system_map()

        # Update consolidation vote
+4 −2
Original line number Diff line number Diff line
@@ -470,7 +470,8 @@ __Next Targets__
**Othime**    0/7367 :Fortifying: Priority for S/M ships (no L pads) - 83.68Ly

__Priority Systems__
**Othime**    0/7367 :Fortifying: Priority for S/M ships (no L pads) - 83.68Ly"""
**Othime**    0/7367 :Fortifying: Priority for S/M ships (no L pads) - 83.68Ly
**Dongkum** 7000/7239 :Fortifying: (239 left) - 81.54Ly"""
    f_bot.send_message.assert_called_with(msg.channel, expect)


@@ -595,7 +596,8 @@ __Next Targets__
**Nurundere** 5422/8425 :Fortifying: - 99.51Ly

__Priority Systems__
**Othime**    0/7367 :Fortifying: Priority for S/M ships (no L pads) - 83.68Ly"""
**Othime**    0/7367 :Fortifying: Priority for S/M ships (no L pads) - 83.68Ly
**Dongkum** 7000/7239 :Fortifying: (239 left) - 81.54Ly"""
    f_bot.send_message.assert_called_with(msg2.channel, expect)


Loading