diff --git a/.travis.yml b/.travis.yml index bcbe5a5c..1fc84803 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,7 +20,7 @@ before_install: install: - pip install --upgrade pip - - pip install -r requirements.txt + - pip install -r requirements-test.txt script: - python manage.py migrate diff --git a/api/tacticalrmm/agents/tests.py b/api/tacticalrmm/agents/tests.py index c4753460..87bc071a 100644 --- a/api/tacticalrmm/agents/tests.py +++ b/api/tacticalrmm/agents/tests.py @@ -1,3 +1,5 @@ +import mock + from tacticalrmm.test import BaseTestCase from .serializers import AgentSerializer @@ -61,23 +63,42 @@ class TestAgentViews(BaseTestCase): self.check_not_authenticated("patch", url) - """ def test_meshcentral_tabs(self): + @mock.patch("subprocess.run") + def test_meshcentral_tabs(self, mock_run): + mock_run.return_value.stdout = b'h56Ju2aThD$!wy$AcDSAz@$NnvgGa0=\n' url = f"/agents/{self.agent.pk}/meshtabs/" r = self.client.get(url) - self.assertIn("viewmode", r.data["fileurl"]) + + self.assertIn("hide=31", r.data["fileurl"]) + self.assertIn("@$NnvgGa0=", r.data["fileurl"]) + self.assertIn("/?viewmode=13", r.data["fileurl"]) + self.assertIs(type(r.data["fileurl"]), str) + + self.assertIn("hide=31", r.data["terminalurl"]) + self.assertIn("@$NnvgGa0=", r.data["terminalurl"]) + self.assertIn("/?viewmode=12", r.data["terminalurl"]) + self.assertIs(type(r.data["terminalurl"]), str) + + self.assertEqual("DESKTOP-TEST123", r.data["hostname"]) + self.assertEqual(r.status_code, 200) self.check_not_authenticated("get", url) - def test_takecontrols(self): + @mock.patch("subprocess.run") + def test_take_control(self, mock_run): + mock_run.return_value.stdout = b'h56Ju2aThD$!wy$AcDSAz@$NnvgGa0=\n' url = f"/agents/{self.agent.pk}/takecontrol/" r = self.client.get(url) - self.assertIn("hide", r.data) + self.assertIn("hide=31", r.data) + self.assertIn("@$NnvgGa0=", r.data) + self.assertIn("/?viewmode=11", r.data) + self.assertIs(type(r.data), str) self.assertEqual(r.status_code, 200) - self.check_not_authenticated("get", url) """ + self.check_not_authenticated("get", url) def test_by_client(self): url = "/agents/byclient/Google/" diff --git a/api/tacticalrmm/requirements-test.txt b/api/tacticalrmm/requirements-test.txt new file mode 100644 index 00000000..67f5b1d7 --- /dev/null +++ b/api/tacticalrmm/requirements-test.txt @@ -0,0 +1,42 @@ +amqp==2.5.2 +appdirs==1.4.3 +asgiref==3.2.3 +attrs==19.3.0 +billiard==3.6.1.0 +black==19.10b0 +celery==4.3.0 +certifi==2019.11.28 +cffi==1.13.2 +chardet==3.0.4 +Click==7.0 +cryptography==2.8 +decorator==4.4.1 +distro==1.4.0 +Django==3.0 +django-cors-headers==3.2.0 +django-rest-knox==4.1.0 +djangorestframework==3.11.0 +idna==2.8 +importlib-metadata==1.3.0 +kombu==4.6.7 +loguru==0.4.0 +mock==3.0.5 +more-itertools==8.0.2 +pathspec==0.6.0 +psycopg2-binary==2.8.4 +pycparser==2.19 +pymongo==3.10.0 +pyotp==2.3.0 +pytz==2019.3 +redis==3.3.11 +regex==2019.12.9 +requests==2.22.0 +six==1.13.0 +sqlparse==0.3.0 +toml==0.10.0 +typed-ast==1.4.0 +urllib3==1.25.7 +uWSGI==2.0.18 +validators==0.14.1 +vine==1.3.0 +zipp==0.6.0 \ No newline at end of file