11import copy
2+ import platform
3+ import tempfile
24import threading
5+ from configparser import ConfigParser
36from unittest import TestCase
47from unittest .mock import patch
58
@@ -18,6 +21,8 @@ class TestMixpanel(TestCase):
1821 "Team Owner" : TEAM_DATA ["creator_id" ],
1922 "Version" : __version__ ,
2023 "Success" : True ,
24+ "Python version" : platform .python_version (),
25+ "Python interpreter type" : platform .python_implementation (),
2126 }
2227 PROJECT_NAME = "TEST_MIX"
2328 PROJECT_DESCRIPTION = "Desc"
@@ -49,6 +54,57 @@ def _safe_delete_project(cls, project_name):
4954 def default_payload (self ):
5055 return copy .copy (self .BLANK_PAYLOAD )
5156
57+ @patch ("lib.app.interface.base_interface.Tracker._track" )
58+ def test_init (self , track_method ):
59+ SAClient ()
60+ result = list (track_method .call_args )[0 ]
61+ payload = self .default_payload
62+ payload .update ({"token" : "False" , "config_path" : "False" })
63+ assert result [1 ] == "__init__"
64+ assert payload == result [2 ]
65+
66+ @patch ("lib.app.interface.base_interface.Tracker._track" )
67+ @patch ("lib.core.usecases.GetTeamUseCase" )
68+ def test_init_via_token (self , get_team_use_case , track_method ):
69+ SAClient (token = "test=3232" )
70+ result = list (track_method .call_args )[0 ]
71+ payload = self .default_payload
72+ payload .update (
73+ {
74+ "token" : "True" ,
75+ "config_path" : "False" ,
76+ "Team" : get_team_use_case ().execute ().data .name ,
77+ "Team Owner" : get_team_use_case ().execute ().data .creator_id ,
78+ }
79+ )
80+ assert result [1 ] == "__init__"
81+ assert payload == result [2 ]
82+
83+ @patch ("lib.app.interface.base_interface.Tracker._track" )
84+ @patch ("lib.core.usecases.GetTeamUseCase" )
85+ def test_init_via_config_file (self , get_team_use_case , track_method ):
86+ with tempfile .TemporaryDirectory () as config_dir :
87+ config_ini_path = f"{ config_dir } /config.ini"
88+ with patch ("lib.core.CONFIG_INI_FILE_LOCATION" , config_ini_path ):
89+ with open (f"{ config_dir } /config.ini" , "w" ) as config_ini :
90+ config_parser = ConfigParser ()
91+ config_parser .optionxform = str
92+ config_parser ["DEFAULT" ] = {"SA_TOKEN" : "test=3232" }
93+ config_parser .write (config_ini )
94+ SAClient (config_path = f"{ config_dir } /config.ini" )
95+ result = list (track_method .call_args )[0 ]
96+ payload = self .default_payload
97+ payload .update (
98+ {
99+ "token" : "False" ,
100+ "config_path" : "True" ,
101+ "Team" : get_team_use_case ().execute ().data .name ,
102+ "Team Owner" : get_team_use_case ().execute ().data .creator_id ,
103+ }
104+ )
105+ assert result [1 ] == "__init__"
106+ assert payload == result [2 ]
107+
52108 @patch ("lib.app.interface.base_interface.Tracker._track" )
53109 def test_get_team_metadata (self , track_method ):
54110 team = self .CLIENT .get_team_metadata ()
@@ -57,7 +113,7 @@ def test_get_team_metadata(self, track_method):
57113 payload = self .default_payload
58114 assert result [0 ] == team_owner
59115 assert result [1 ] == "get_team_metadata"
60- assert payload == list ( track_method . call_args )[ 0 ] [2 ]
116+ assert payload == result [2 ]
61117
62118 @patch ("lib.app.interface.base_interface.Tracker._track" )
63119 def test_search_team_contributors (self , track_method ):
@@ -72,7 +128,7 @@ def test_search_team_contributors(self, track_method):
72128 payload = self .default_payload
73129 payload .update (kwargs )
74130 assert result [1 ] == "search_team_contributors"
75- assert payload == list ( track_method . call_args )[ 0 ] [2 ]
131+ assert payload == result [2 ]
76132
77133 @patch ("lib.app.interface.base_interface.Tracker._track" )
78134 def test_search_projects (self , track_method ):
@@ -87,7 +143,7 @@ def test_search_projects(self, track_method):
87143 payload = self .default_payload
88144 payload .update (kwargs )
89145 assert result [1 ] == "search_projects"
90- assert payload == list ( track_method . call_args )[ 0 ] [2 ]
146+ assert payload == result [2 ]
91147
92148 @patch ("lib.app.interface.base_interface.Tracker._track" )
93149 def test_create_project (self , track_method ):
@@ -110,7 +166,7 @@ def test_create_project(self, track_method):
110166 payload .update (kwargs )
111167 payload ["settings" ] = list (kwargs ["settings" ].keys ())
112168 assert result [1 ] == "create_project"
113- assert payload == list ( track_method . call_args )[ 0 ] [2 ]
169+ assert payload == result [2 ]
114170
115171 @pytest .mark .skip ("Need to adjust" )
116172 @patch ("lib.app.interface.base_interface.Tracker._track" )
0 commit comments