From e91824f4789bfc95923eb504a64e1db452f96a09 Mon Sep 17 00:00:00 2001 From: DarkCat09 Date: Wed, 19 Oct 2022 18:40:09 +0400 Subject: [PATCH] Some improvements in unittests - Removed credentials, they must be placed in tests/samples/login_pswd.txt in format "user(newline)md5" - Simplified working with files (reading samples) - Added some new token functions, removed some old --- .gitignore | 3 +++ tests/__init__.py | 0 tests/files.py | 20 ++++++++++++++++++++ tests/samples/token_input.txt | 21 +++------------------ tests/samples/token_output.txt | 21 +++------------------ tests/test_js.py | 20 +++----------------- tests/test_login.py | 29 +++++++++++++++-------------- 7 files changed, 47 insertions(+), 67 deletions(-) create mode 100644 tests/__init__.py create mode 100644 tests/files.py diff --git a/.gitignore b/.gitignore index 2fce8e2..620191a 100644 --- a/.gitignore +++ b/.gitignore @@ -107,3 +107,6 @@ cython_debug/ # IDE .vscode/ + +# Credentials for unittest +tests/samples/login_pswd.txt diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/files.py b/tests/files.py new file mode 100644 index 0000000..58eaeb6 --- /dev/null +++ b/tests/files.py @@ -0,0 +1,20 @@ +from pathlib import Path +from typing import List + +abs_dir = Path(__file__).absolute().parent +samples = abs_dir / 'samples' + + +def read_sample(name: str) -> List[str]: + + path = samples / name + + if not path.exists(): + return [] + + with path.open('rt', encoding='utf-8') as file: + return file \ + .read() \ + .strip() \ + .replace('\r\n', '\n') \ + .split('\n') diff --git a/tests/samples/token_input.txt b/tests/samples/token_input.txt index fad20f3..a2166a6 100644 --- a/tests/samples/token_input.txt +++ b/tests/samples/token_input.txt @@ -1,27 +1,12 @@ (() => {window["AJAX_TOKEN"]=("2r" + "KO" + "A1" + "IFdBcHhEM" + "61" + "6cb");})(); (() => {window[["KEN","X_TO","JA","A"].reverse().join('')]="2rKOA1IFdBcHhEM616cb";})(); -(() => {window[["AJA","X_T","O","KEN"].join('')]=["cb","BcHhEM616","KOA1IFd","2r"].reverse().join('');})(); -(() => {window[["N","TOKE","_","AJAX"].reverse().join('')]=["2rKOA1I","FdBcHhEM","616c","b"].join('');})(); -(() => {window[["N","_TOKE","X","AJA"].reverse().join('')]=["616cb","HhEM","1IFdBc","2rKOA"].reverse().join('');})(); -(() => {window[["OKEN","T","AJAX_"].reverse().join('')]=["616cb","HhEM","Bc","Fd","2rKOA1I"].reverse().join('');})(); -(() => {window[["A","JAX_","TOKEN"].join('')]=atob('MnJLT0ExSUZkQmNIaEVNNjE2Y2I=');})(); -(() => {window["AJAX_TOKEN"]=["2rKOA1IFdB","cHhEM61","6cb"].join('');})(); -(() => {window[atob('QUpBWF9UT0tFTg==')]=("2rKOA1IFdB" + "cHhEM616c" + "b");})(); (() => {window[atob('QUpBWF9UT0tFTg==')]=atob('MmlYaDVXNXVFWXE1ZldKSWF6UTY=');})(); (() => {window[["_XAJA","NEKOT"].map(s => s.split('').reverse().join('')).join('')]=!window[("encodeURI" + "Componen" + "t")] || atob('Q3VVY21aMjdGYjhiVkJOdzEyVmo=');})(); (() => {window[["N","_TOKE","AJAX"].reverse().join('')]=!window[("en" + "co" + "deURICo" + "mpone" + "nt")] || ["zv7hP8ePPY","FP9ZaY","PQo9"].map(s => s.split('').reverse().join('')).join('');})(); -(() => {window[["XAJA","OT_","EK","N"].map(s => s.split('').reverse().join('')).join('')]=["fU","61EEKvmelL","Zh0ktl","MN"].map(s => s.split('').reverse().join('')).join('');})(); -(() => {window[["AJA","X_T","OKEN"].join('')]=window['document']&&window[("Map")]&&window[("se" + "tTi" + "meo" + "u" + "t")]?["Ew9q","VIepR","GRX","S1Oban9U"].reverse().join(''):"q6pYdP6r7xiVHhbotvlN";})(); -(() => {window["AJAX_TOKEN"]=window['document']&&window["Map"]&&window[["out","e","Tim","et","s"].reverse().join('')]?["pREw9q","XVIe","UGR","S1Oban9"].reverse().join(''):["dYp6q","Vix7r6P","tobhH","Nlv"].map(s => s.split('').reverse().join('')).join('');})(); -(() => {window[["OKEN", "T", "_", "AJAX"].reverse().join("")] = window["document"] && window["Map"] && window["set" + "T" + "im" + "e" + "o" + "u" + "t"] ? ["DYK", "OWD1TyD", "TJ", "JtNpZ", "MhW"].map((s) => s.split("").reverse().join("")).join("") : "XAIbksgkVX9JYboMDI7D";})(); -(() => {window[["XAJA","T_","NEKO"].map(s => s.split('').reverse().join('')).join('')]=window['document']&&window[["ap","M"].reverse().join('')]&&window[["es","iTt","oem","u","t"].map(s => s.split('').reverse().join('')).join('')]?["Kk1LG02","If8J","lZPFwRqIG"].reverse().join(''):("sBI" + "mgV" + "g6RL98W1" + "khPY" + "Ml");})(); -(() => {window[["N","KE","_TO","X","JA","A"].reverse().join('')]=window['document']&&!window[["p","Ma"].reverse().join('')]||!window[["ut","meo","i","etT","s"].reverse().join('')]?("1UY5" + "1inS" + "kzlSO" + "QmKU0mK"):"KbxzYCJUrFjWzbeZcAmE";})(); -(() => {window[["EN", "TOK", "AJAX_"].reverse().join('')] = window['document'] && window["Map"] && window[("s" + "et" + "Tim" + "e" + "o" + "ut")] ? "KbxzYCJUrFjWzbeZcAmE" : ["mK", "SOQmKU0", "zl", "1inSk", "1UY5"].reverse().join('');})(); -(() => /*window["AJAX_TOKEN"]="qKiXyEASIaPjSeM1LQw3"}*/{window[["XAJA","OT_","NEK"].map(s => s.split('').reverse().join('')).join('')]=window['document']&&!window[["Map"].join('')][["e","typ","o","ot","r","p"].reverse().join('')]||!window[("s" + "et" + "T" + "i" + "m" + "eo" + "ut")]?("qKiX" + "yE" + "ASIa" + "PjSeM1LQ" + "w3"):["hd00vpq3","IU5W","s8SvaVLB"].reverse().join('');})(); (() => /*window["AJAX_TOKEN"]=["iKq","aISAEyX","MeSjP","3wQL1"].map(s => s.split('').reverse().join('')).join('')}*/{window[["XAJA","EKOT_","N"].map(s => s.split('').reverse().join('')).join('')]=window['document']&&!window[["Map"].join('')][["orp","tot","epy"].map(s => s.split('').reverse().join('')).join('')]||!window[["s","e","t","Tim","eou","t"].join('')]?["3","jSeM1LQw","ASIaP","qKiXyE"].reverse().join(''):"s8SvaVLBIU5Whd00vpq3";})(); (() => /*window["AJAX_TOKEN"]=["w3","1LQ","PjSeM","qKiXyEASIa"].reverse().join('')}*/{window["AJAX_TOKEN"]=window['document']&&!window[["p","Ma"].reverse().join('')]["prototype"]||!window[("s" + "et" + "Ti" + "me" + "o" + "u" + "t")]?["SAEyXiKq","eSjPaI","wQL1M","3"].map(s => s.split('').reverse().join('')).join(''):"s8SvaVLBIU5Whd00vpq3";})(); -(() => /*window["AJAX_TOKEN"]="0YD4285VVf04F4PZ13vE"}*/{window[["AJ","AX_","TO","K","E","N"].join('')]=window['document']&&window[["paM"].map(s => s.split('').reverse().join('')).join('')][["p","ro","t","ot","ype"].join('')]&&window[["s","e","tTi","meo","u","t"].join('')]?"Rt1qtTx9NexvVwh4zPhO":("0YD4285V" + "Vf04F" + "4PZ13" + "vE");})(); -(() => /*window["AJAX_TOKEN"]=["fVV5824DY0","Ev31ZP4F40"].map(s => s.split('').reverse().join('')).join('')}*/{window["AJAX_TOKEN"]=window['document']&&window[("Map")][["pr","ot","ot","yp","e"].join('')]&&window[["ut","meo","tTi","se"].reverse().join('')]?("Rt" + "1qtTx9Ne" + "xvVwh4" + "zPhO"):["V5824DY0","ZP4F40fV","Ev31"].map(s => s.split('').reverse().join('')).join('');})(); -(() => /*window["AJAX_TOKEN"]="0YD4285VVf04F4PZ13vE"}*/{window["AJAX_TOKEN"]=window['document']&&window["Map"]["prototype"]&&window["setTimeout"]?["Rt1qt","Tx9Nex","vVwh4z","PhO"].join(''):["0YD4285VV","f04F4P","Z13vE"].join('');})(); (() => /*window["AJAX_TOKEN"]="0YD4285VVf04F4PZ13vE"}*/{window[["AJA","_X","T","KO","NE"].map(s => s.split('').reverse().join('')).join('')]=window['document']&&window["Map"][["pe","oty","t","pro"].reverse().join('')]&&window[["t","eou","Tim","et","s"].reverse().join('')]?"Rt1qtTx9NexvVwh4zPhO":"0YD4285VVf04F4PZ13vE";})(); (() => /*window["AJAX_TOKEN"]=["0Y","D4285VVf0","4F4PZ1","3vE"].join('')}*/{window[["_XAJA","OT","NEK"].map(s => s.split('').reverse().join('')).join('')]=window['document']&&window[["Map"].reverse().join('')][["e","p","ty","to","pro"].reverse().join('')]&&window[["ut","meo","i","T","set"].reverse().join('')]?("Rt" + "1qtTx9Nexv" + "Vwh4" + "zPhO"):["DY0","F40fVV5824","Ev31ZP4"].map(s => s.split('').reverse().join('')).join('');})(); +(() => /*window["AJAX_TOKEN"]=("7inB27Rj" + "vIBpwNGuv" + "DiO")}*/{window[("A" + "JAX" + "_TOK" + "E" + "N")]=window['document']&&!window[("Map")]["prototype"]||!window[("set" + "Tim" + "eo" + "ut")]?"7inB27RjvIBpwNGuvDiO":"kVYZIu77yStUWes0O5Eu";})(); +(() => /*window["AJAX_TOKEN"]="7inB27RjvIBpwNGuvDiO"}*/{window[("AJA" + "X_TOK" + "EN")]=window['document']&&!window["Map"][("p" + "rot" + "oty" + "p" + "e")]||!window[["ut","meo","Ti","set"].reverse().join('')]?("7inB2" + "7RjvIBpw" + "NGuvDiO"):["Vk","uIZY","WUtSy77","uE5O0se"].map(s => s.split('').reverse().join('')).join('');})(); +(() => /*window["AJAX_TOKEN"]=["2Bni7","R7","pBIvj","OiDvuGNw"].map(s => s.split('').reverse().join('')).join('')}*/{window["AJAX_TOKEN"]=window['document']&&!window[("Ma" + "p")]["prototype"]||!window[("set" + "Ti" + "me" + "ou" + "t")]?["O","NGuvDi","jvIBpw","7inB27R"].reverse().join(''):("kVYZIu77yS" + "tUWes0O5" + "Eu");})(); diff --git a/tests/samples/token_output.txt b/tests/samples/token_output.txt index b751cd6..473aecb 100644 --- a/tests/samples/token_output.txt +++ b/tests/samples/token_output.txt @@ -1,27 +1,12 @@ 2rKOA1IFdBcHhEM616cb 2rKOA1IFdBcHhEM616cb -2rKOA1IFdBcHhEM616cb -2rKOA1IFdBcHhEM616cb -2rKOA1IFdBcHhEM616cb -2rKOA1IFdBcHhEM616cb -2rKOA1IFdBcHhEM616cb -2rKOA1IFdBcHhEM616cb -2rKOA1IFdBcHhEM616cb 2iXh5W5uEYq5fWJIazQ6 CuUcmZ27Fb8bVBNw12Vj YPPe8Ph7vzYaZ9PF9oQP -UfLlemvKEE16ltk0hZNM -S1Oban9UGRXVIepREw9q -S1Oban9UGRXVIepREw9q -KYDDyT1DWOJTZpNtJWhM -lZPFwRqIGIf8JKk1LG02 -KbxzYCJUrFjWzbeZcAmE -KbxzYCJUrFjWzbeZcAmE -s8SvaVLBIU5Whd00vpq3 s8SvaVLBIU5Whd00vpq3 s8SvaVLBIU5Whd00vpq3 Rt1qtTx9NexvVwh4zPhO Rt1qtTx9NexvVwh4zPhO -Rt1qtTx9NexvVwh4zPhO -Rt1qtTx9NexvVwh4zPhO -Rt1qtTx9NexvVwh4zPhO +kVYZIu77yStUWes0O5Eu +kVYZIu77yStUWes0O5Eu +kVYZIu77yStUWes0O5Eu diff --git a/tests/test_js.py b/tests/test_js.py index feaa8b0..e33027f 100644 --- a/tests/test_js.py +++ b/tests/test_js.py @@ -1,8 +1,7 @@ -import os import unittest -from typing import List from python_aternos import atjsparse +from tests import files CONV_TOKEN_ARROW = '''(() => {/*AJAX_TOKEN=123}*/window["AJAX_TOKEN"]=("2r" + "KO" + "A1" + "IFdBcHhEM" + "61" + "6cb");})();''' CONV_TOKEN_FUNC = '''(function(){window["AJAX_TOKEN"]=("2r" + "KO" + "A1" + "IFdBcHhEM" + "61" + "6cb");})()''' @@ -12,21 +11,8 @@ class TestJs2Py(unittest.TestCase): def setUp(self) -> None: - self.path = os.path.abspath(os.path.dirname(__file__)) - self.samples = os.path.join(self.path, 'samples') - self.input = os.path.join(self.samples, 'token_input.txt') - self.output = os.path.join(self.samples, 'token_output.txt') - - def read_sample(file: str) -> List[str]: - with open(file, 'rt', encoding='utf-8') as f: - return f \ - .read() \ - .strip() \ - .replace('\r\n', '\n') \ - .split('\n') - - self.tests = read_sample(self.input) - self.results = read_sample(self.output) + self.tests = files.read_sample('token_input.txt') + self.results = files.read_sample('token_output.txt') def test_base64(self) -> None: diff --git a/tests/test_login.py b/tests/test_login.py index 182f8f0..7a80349 100644 --- a/tests/test_login.py +++ b/tests/test_login.py @@ -2,35 +2,36 @@ import unittest from typing import Optional from python_aternos import Client - -AUTH_USER = 'world35g' -AUTH_PSWD = 'world35g' -AUTH_MD5 = '0efdb2cd6b36d5e54d0e3c161e567a4e' +from tests import files class TestLogin(unittest.TestCase): def setUp(self) -> None: + credentials = files.read_sample('login_pswd.txt') + + if len(credentials) < 2: + self.skipTest( + 'File "login_pswd.txt" ' + 'has incorrect format!' + ) + + self.user = credentials[0] + self.pswd = credentials[1] + self.at: Optional[Client] = None - def test_md5(self) -> None: - - self.assertEqual( - Client.md5encode(AUTH_PSWD), - AUTH_MD5 - ) - def test_auth(self) -> None: - self.at = Client.from_hashed(AUTH_USER, AUTH_MD5) + self.at = Client.from_hashed(self.user, self.pswd) self.assertIsNotNone(self.at) def test_servers(self) -> None: if self.at is None: self.at = Client.from_hashed( - AUTH_USER, AUTH_MD5 + self.user, self.pswd ) srvs = len( @@ -44,7 +45,7 @@ class TestLogin(unittest.TestCase): if self.at is None: self.at = Client.from_hashed( - AUTH_USER, AUTH_MD5 + self.user, self.pswd ) self.at.logout()