コード例 #1
0
    def __transform_input__(cls, data: RawDataType) -> None:
        players = data["players"]
        for key, value in players.items():
            try:
                new_value = build_from_raw(Play, value)
            except TypeError:
                new_value = build_from_raw(Update, value)

            players[key] = new_value
コード例 #2
0
def test_error_load():
    raw_data = {"class": "java.lang.NullPointerException", "message": None, "suppressed": [],
                "stack": [
                    {"classLoader": "app", "moduleName": None, "moduleVersion": None,
                     "className": "andesite.node.handler.RestHandler",
                     "methodName": "lambda$trackRoutes$25", "fileName": "RestHandler.java", "lineNumber": 288,
                     "pretty": "andesite.node.handler.RestHandler.lambda$trackRoutes$25(RestHandler.java:288)"},
                    {"classLoader": "app", "moduleName": None, "moduleVersion": None,
                     "className": "io.netty.util.concurrent.SingleThreadEventExecutor$5",
                     "methodName": "run", "fileName": "SingleThreadEventExecutor.java", "lineNumber": 897,
                     "pretty": "io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:897)"},
                    {"classLoader": "app", "moduleName": None, "moduleVersion": None,
                     "className": "io.netty.util.concurrent.FastThreadLocalRunnable",
                     "methodName": "run", "fileName": "FastThreadLocalRunnable.java", "lineNumber": 30,
                     "pretty": "io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)"},
                    {"classLoader": None, "moduleName": "java.base", "moduleVersion": "11.0.2",
                     "className": "java.lang.Thread",
                     "methodName": "run", "fileName": "Thread.java", "lineNumber": 834,
                     "pretty": "java.base/java.lang.Thread.run(Thread.java:834)"}
                ],
                "cause": None}

    error = build_from_raw(Error, raw_data)

    assert error == Error("java.lang.NullPointerException", None, [
        StackFrame("app", None, None, "andesite.node.handler.RestHandler", "lambda$trackRoutes$25", "RestHandler.java", 288,
                   "andesite.node.handler.RestHandler.lambda$trackRoutes$25(RestHandler.java:288)"),
        StackFrame("app", None, None, "io.netty.util.concurrent.SingleThreadEventExecutor$5", "run", "SingleThreadEventExecutor.java", 897,
                   "io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:897)"),
        StackFrame("app", None, None, "io.netty.util.concurrent.FastThreadLocalRunnable", "run", "FastThreadLocalRunnable.java", 30,
                   "io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)"),
        StackFrame(None, "java.base", "11.0.2", "java.lang.Thread", "run", "Thread.java", 834, "java.base/java.lang.Thread.run(Thread.java:834)")
    ], [], None)
コード例 #3
0
    def __transform_input__(cls, data: RawDataType) -> None:
        map_convert_value(data, "load_type", LoadType)

        try:
            playlist_info = data["playlist_info"]
        except KeyError:
            pass
        else:
            # my god, Andesite now sends an empty object if the playlist_info is null
            # and we absolutely don't want that! So if it's falsy, use None
            if playlist_info:
                playlist_info = build_from_raw(PlaylistInfo, playlist_info)
            else:
                playlist_info = None

            data["playlist_info"] = playlist_info

        map_build_values_from_raw(data, cause=Error)

        try:
            tracks = data["tracks"]
        except KeyError:
            pass
        else:
            seq_build_all_items_from_raw(tracks, TrackInfo)
コード例 #4
0
def test_build_from_raw():
    raw = {
        "helloWorld": "test",
        "nest": {
            "coolThing": 5500,
            "test": 3
        }
    }

    assert build_from_raw(DataTest, raw) == DataTest("test", NestedTest(5.5, 3))
コード例 #5
0
ファイル: filters.py プロジェクト: gieseladev/andesite.py
    def __transform_input__(cls, data: RawDataType) -> RawDataType:
        filters: RawDataType = {}

        for name, filter_value in data.items():
            filter_cls = get_filter_model(name)

            if filter_cls is not None:
                filter_value = build_from_raw(filter_cls, filter_value)

            filters[name] = filter_value

        return dict(filters=filters)
コード例 #6
0
def test_filter_map_from_raw():
    raw = {
        "karaoke": {
            "filterBand": 220.0,
            "filterWidth": 100.0,
            "level": 1.0,
            "monoLevel": 1.0
        }
    }
    f = build_from_raw(FilterMap, raw)

    assert f == FilterMap(dict(karaoke=Karaoke()))

    assert convert_to_raw(raw) == raw
コード例 #7
0
def test_track_end_event_build():
    raw_data = {
        "type": "TrackEndEvent",
        "guildId": "549904277108424715",
        "userId": "549905730099216384",
        "track": "QAAAmAIANUFudWVsIEFBIC0gRW",
        "reason": "FINISHED",
        "mayStartNext": True
    }

    # noinspection PyArgumentList
    assert build_from_raw(TrackEndEvent, raw_data) == TrackEndEvent(
        "TrackEndEvent", 549905730099216384, 549904277108424715,
        "QAAAmAIANUFudWVsIEFBIC0gRW", TrackEndReason.FINISHED, True)
コード例 #8
0
def test_track_start_event_build():
    raw_data = {
        "type": "TrackStartEvent",
        "guildId": "549904277108424715",
        "userId": "549905730099216384",
        "track": "QAAAiwIAJ0x1aXMg"
    }

    # noinspection PyArgumentList
    assert build_from_raw(TrackStartEvent,
                          raw_data) == TrackStartEvent("TrackStartEvent",
                                                       549905730099216384,
                                                       549904277108424715,
                                                       "QAAAiwIAJ0x1aXMg")
コード例 #9
0
def test_filter_map_to_raw():
    f = FilterMap({})
    f.set_filter(Karaoke())
    raw = convert_to_raw(f)

    assert raw == {
        "karaoke": {
            "filterBand": 220.0,
            "filterWidth": 100.0,
            "level": 1.0,
            "monoLevel": 1.0
        }
    }

    assert build_from_raw(FilterMap, raw) == f
コード例 #10
0
def test_unknown_andesite_event():
    data = {
        "type": "SpecialEvent",
        "userId": "1231231231231",
        "guildId": "234234234234234",
        "a": 5,
        "b": 6,
    }
    data_copy = copy.deepcopy(data)
    data_copy_low = copy.deepcopy(data_copy)
    lettercase.mut_convert_keys(data_copy_low, None, "snake")

    evt = build_from_raw(UnknownAndesiteEvent, data)

    assert evt.body == data_copy_low

    new_data = convert_to_raw(evt)
    assert data_copy == new_data
コード例 #11
0
ファイル: filters.py プロジェクト: gieseladev/andesite.py
    def get_filter(self, name: str, cls: Type[FT]) -> FT:
        """Get the filter with the name.

        Args:
            name: Name of the filter to get
            cls: `Filter` class to use for the filter.
        """
        try:
            value = self[name]
        except KeyError:
            value = self[name] = cls()
        else:
            if not isinstance(value, cls):
                if isinstance(value, dict):
                    value = self[name] = build_from_raw(cls, value)
                else:
                    raise TypeError(f"Expected {cls}, found {type(value)!r}: {value}")

        return value
コード例 #12
0
 def __transform_input__(cls, data: RawDataType) -> RawDataType:
     new_data = {**data}
     new_data["nest"] = build_from_raw(NestedTest, new_data["nest"])
     return new_data
コード例 #13
0
def test_stats_load():
    raw_data = {"players": {"total": 1, "playing": 0},
                "runtime": {"uptime": 99400057, "pid": 21370, "managementSpecVersion": "2.0", "name": "21370@node3",
                            "vm": {"name": "Zing 64-Bit Tiered VM", "vendor": "Azul Systems, Inc.",
                                   "version": "11.0.1-zing_19.02.1.0-b2-product-azlinuxM-X86_64"},
                            "spec": {"name": "Java Virtual Machine Specification", "vendor": "Oracle Corporation", "version": "11"},
                            "version": {"feature": 11, "interim": 0, "update": 2, "patch": 0, "pre": None, "build": 9, "optional": "LTS"}},
                "os": {"processors": 12, "name": "Linux", "arch": "amd64", "version": "4.15.0-46-generic"},
                "cpu": {"andesite": 3.9876363152102217E-4, "system": 0.025722987996724848},
                "classLoading": {"loaded": 7149, "totalLoaded": 7149, "unloaded": 0},
                "thread": {"running": 52, "daemon": 30, "peak": 53, "totalStarted": 68},
                "compilation": {"name": "Zing 64-Bit Tiered VM", "totalTime": 108560},
                "memory": {"pendingFinalization": 0, "heap": {"init": 0, "used": 1774190592, "committed": 39512436736, "max": 39512436736},
                           "nonHeap": {"init": 0, "used": 8723456, "committed": 268435456, "max": 268435456}},
                "gc": [{"name": "GPGC New", "collectionCount": 0, "collectionTime": 0, "pools": ["GenPauseless New Gen"]},
                       {"name": "GPGC Old", "collectionCount": 0, "collectionTime": 0, "pools": ["GenPauseless Old Gen", "GenPauseless Perm Gen"]}],
                "memoryPools": [
                    {"name": "GenPauseless New Gen", "type": "HEAP",
                     "collectionUsage": {"init": 2097152, "used": 0, "committed": 0, "max": 41976594432},
                     "collectionUsageThreshold": 0,
                     "collectionUsageThresholdCount": 0,
                     "peakUsage": {"init": 2097152, "used": 1707081728, "committed": 1707081728, "max": 41976594432},
                     "usage": {"init": 2097152, "used": 1707081728, "committed": 1707081728, "max": 41976594432},
                     "usageThreshold": 0,
                     "usageThresholdCount": 0,
                     "managers": ["GPGC New"]},
                    {"name": "GenPauseless Old Gen", "type": "HEAP",
                     "collectionUsage": {"init": 0, "used": 0, "committed": 0, "max": 41976594432},
                     "collectionUsageThreshold": 0,
                     "collectionUsageThresholdCount": 0,
                     "peakUsage": {"init": 0, "used": 0, "committed": 0, "max": 41976594432},
                     "usage": {"init": 0, "used": 0, "committed": 0, "max": 41976594432},
                     "usageThreshold": 0,
                     "usageThresholdCount": 0,
                     "managers": ["GPGC Old"]},
                    {"name": "GenPauseless Perm Gen", "type": "HEAP",
                     "collectionUsage": {"init": 2097152, "used": 0, "committed": 0, "max": 41976594432},
                     "collectionUsageThreshold": 0,
                     "collectionUsageThresholdCount": 0,
                     "peakUsage": {"init": 2097152, "used": 67108864, "committed": 67108864, "max": 41976594432},
                     "usage": {"init": 2097152, "used": 67108864, "committed": 67108864, "max": 41976594432},
                     "usageThreshold": 0,
                     "usageThresholdCount": 0,
                     "managers": ["GPGC Old"]},
                    {"name": "CodeCache", "type": "NON_HEAP",
                     "collectionUsage": None,
                     "collectionUsageThreshold": None,
                     "collectionUsageThresholdCount": None,
                     "peakUsage": {"init": 0, "used": 8723456, "committed": 268435456, "max": 268435456},
                     "usage": {"init": 0, "used": 8723456, "committed": 268435456, "max": 268435456},
                     "usageThreshold": 0,
                     "usageThresholdCount": 0,
                     "managers": ["CodeCache"]}
                ],
                "memoryManagers": [{"name": "CodeCache", "pools": ["CodeCache"]}, {"name": "GPGC New", "pools": ["GenPauseless New Gen"]},
                                   {"name": "GPGC Old", "pools": ["GenPauseless Old Gen", "GenPauseless Perm Gen"]}],
                "frameStats": [{"user": "******", "guild": "549904277108424715", "success": 0, "loss": 1500}]}

    stats = build_from_raw(Stats, raw_data)
    assert stats == Stats(
        PlayersStats(1, 0),
        RuntimeStats(99400057, 21370, "2.0", "21370@node3",
                     RuntimeVMStats("Zing 64-Bit Tiered VM", "Azul Systems, Inc.", "11.0.1-zing_19.02.1.0-b2-product-azlinuxM-X86_64"),
                     RuntimeSpecStats("Java Virtual Machine Specification", "Oracle Corporation", "11"),
                     RuntimeVersionStats(11, 0, 2, 0, None, 9, "LTS")),
        OSStats(12, "Linux", "amd64", "4.15.0-46-generic"),
        CPUStats(3.9876363152102217E-4, 0.025722987996724848),
        ClassLoadingStats(7149, 7149, 0),
        ThreadStats(52, 30, 53, 68),
        CompilationStats("Zing 64-Bit Tiered VM", 108560),
        MemoryStats(0, MemoryCommonUsageStats(0, 1774190592, 39512436736, 39512436736), MemoryCommonUsageStats(0, 8723456, 268435456, 268435456)),
        [GCStats("GPGC New", 0, 0, ["GenPauseless New Gen"]), GCStats("GPGC Old", 0, 0, ["GenPauseless Old Gen", "GenPauseless Perm Gen"])],
        [
            MemoryPoolStats("GenPauseless New Gen", "HEAP", MemoryCommonUsageStats(2097152, 0, 0, 41976594432), 0, 0,
                            MemoryCommonUsageStats(2097152, 1707081728, 1707081728, 41976594432),
                            MemoryCommonUsageStats(2097152, 1707081728, 1707081728, 41976594432), 0, 0, ["GPGC New"]),
            MemoryPoolStats("GenPauseless Old Gen", "HEAP", MemoryCommonUsageStats(0, 0, 0, 41976594432), 0, 0,
                            MemoryCommonUsageStats(0, 0, 0, 41976594432),
                            MemoryCommonUsageStats(0, 0, 0, 41976594432), 0, 0, ["GPGC Old"]),
            MemoryPoolStats("GenPauseless Perm Gen", "HEAP", MemoryCommonUsageStats(2097152, 0, 0, 41976594432), 0, 0,
                            MemoryCommonUsageStats(2097152, 67108864, 67108864, 41976594432),
                            MemoryCommonUsageStats(2097152, 67108864, 67108864, 41976594432), 0, 0, ["GPGC Old"]),
            MemoryPoolStats("CodeCache", "NON_HEAP", None, None, None,
                            MemoryCommonUsageStats(0, 8723456, 268435456, 268435456),
                            MemoryCommonUsageStats(0, 8723456, 268435456, 268435456), 0, 0, ["CodeCache"])
        ],
        [MemoryManagerStats("CodeCache", ["CodeCache"]), MemoryManagerStats("GPGC New", ["GenPauseless New Gen"]),
         MemoryManagerStats("GPGC Old", ["GenPauseless Old Gen", "GenPauseless Perm Gen"])],
        [FrameStats(549905730099216384, 549904277108424715, 0, 1500)]
    )
コード例 #14
0
def test_loaded_track_load():
    raw_data = {
        "loadType":
        "SEARCH_RESULT",
        "tracks": [{
            "track":
            "QAAAlQIAMFdoYXQgSXMgWW91ciBTb3VsIEVsZW1lbnQ/IENvb2wgUGVyc29uYWxpdHkgVGVzdAALQlJJR0hUIFNJREUAAAAAAApE6AALRmlzcjRZWV8yTDgAAQAraHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1GaXNyNFlZXzJMOAAHeW91dHViZQAAAAAAAAAA",
            "info": {
                "class":
                "com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack",
                "title": "What Is Your Soul Element? Cool Personality Test",
                "author": "BRIGHT SIDE",
                "length": 673000,
                "identifier": "Fisr4YY_2L8",
                "uri": "https://www.youtube.com/watch?v=Fisr4YY_2L8",
                "isStream": False,
                "isSeekable": True,
                "position": 0
            }
        }, {
            "track":
            "QAAAmQIANFdobyBJcyBTZWNyZXRseSBJbiBMb3ZlIFdpdGggWW91PyAoUGVyc29uYWxpdHkgVGVzdCkAC0JSSUdIVCBTSURFAAAAAAAHgeAAC2NIWHRuTkNzR280AAEAK2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9Y0hYdG5OQ3NHbzQAB3lvdXR1YmUAAAAAAAAAAA==",
            "info": {
                "class":
                "com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack",
                "title":
                "Who Is Secretly In Love With You? (Personality Test)",
                "author": "BRIGHT SIDE",
                "length": 492000,
                "identifier": "cHXtnNCsGo4",
                "uri": "https://www.youtube.com/watch?v=cHXtnNCsGo4",
                "isStream": False,
                "isSeekable": True,
                "position": 0
            }
        }, {
            "track":
            "QAAAkAIAJjEzIFNVUlZJVkFMIFJJRERMRVMgVE8gVEVTVCBZT1VSIExPR0lDABA3LVNlY29uZCBSaWRkbGVzAAAAAAANB/AAC01QeHBEdGFQSHZBAAEAK2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9TVB4cER0YVBIdkEAB3lvdXR1YmUAAAAAAAAAAA==",
            "info": {
                "class":
                "com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack",
                "title": "13 SURVIVAL RIDDLES TO TEST YOUR LOGIC",
                "author": "7-Second Riddles",
                "length": 854000,
                "identifier": "MPxpDtaPHvA",
                "uri": "https://www.youtube.com/watch?v=MPxpDtaPHvA",
                "isStream": False,
                "isSeekable": True,
                "position": 0
            }
        }],
        "playlistInfo": {
            "name": "Search results for: test",
            "selectedTrack": None
        }
    }

    track = build_from_raw(LoadedTrack, raw_data)

    assert track == LoadedTrack(LoadType.SEARCH_RESULT, [
        TrackInfo(
            "QAAAlQIAMFdoYXQgSXMgWW91ciBTb3VsIEVsZW1lbnQ/IENvb2wgUGVyc29uYWxpdHkgVGVzdAALQlJJR0hUIFNJREUAAAAAAApE6AALRmlzcjRZWV8yTDgAAQAraHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1GaXNyNFlZXzJMOAAHeW91dHViZQAAAAAAAAAA",
            TrackMetadata(
                "com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack",
                "What Is Your Soul Element? Cool Personality Test",
                "BRIGHT SIDE", 673, "Fisr4YY_2L8",
                "https://www.youtube.com/watch?v=Fisr4YY_2L8", False, True,
                0)),
        TrackInfo(
            "QAAAmQIANFdobyBJcyBTZWNyZXRseSBJbiBMb3ZlIFdpdGggWW91PyAoUGVyc29uYWxpdHkgVGVzdCkAC0JSSUdIVCBTSURFAAAAAAAHgeAAC2NIWHRuTkNzR280AAEAK2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9Y0hYdG5OQ3NHbzQAB3lvdXR1YmUAAAAAAAAAAA==",
            TrackMetadata(
                "com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack",
                "Who Is Secretly In Love With You? (Personality Test)",
                "BRIGHT SIDE", 492, "cHXtnNCsGo4",
                "https://www.youtube.com/watch?v=cHXtnNCsGo4", False, True,
                0)),
        TrackInfo(
            "QAAAkAIAJjEzIFNVUlZJVkFMIFJJRERMRVMgVE8gVEVTVCBZT1VSIExPR0lDABA3LVNlY29uZCBSaWRkbGVzAAAAAAANB/AAC01QeHBEdGFQSHZBAAEAK2h0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9TVB4cER0YVBIdkEAB3lvdXR1YmUAAAAAAAAAAA==",
            TrackMetadata(
                "com.sedmelluq.discord.lavaplayer.source.youtube.YoutubeAudioTrack",
                "13 SURVIVAL RIDDLES TO TEST YOUR LOGIC", "7-Second Riddles",
                854, "MPxpDtaPHvA",
                "https://www.youtube.com/watch?v=MPxpDtaPHvA", False, True, 0))
    ], PlaylistInfo("Search results for: test", None))