
    ZTh6%                         d dl mZ d dlZd dlmZ d dlmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZ d dlmZ d dlmZmZ d dlmZ ej8                  d        Zd	d
ddddgZd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&y)    )mockN)	FieldMask)CalculatedChannel)CalculatedChannelAbstractChannelReference#CalculatedChannelAssetConfigurationCalculatedChannelConfiguration#CalculatedChannelQueryConfigurationCreateCalculatedChannelRequestCreateCalculatedChannelResponseGetCalculatedChannelRequestGetCalculatedChannelResponseListCalculatedChannelsRequestListCalculatedChannelsResponse$ListCalculatedChannelVersionsRequest%ListCalculatedChannelVersionsResponseUpdateCalculatedChannelRequestUpdateCalculatedChannelResponse)MockChannel)CalculatedChannelConfigCalculatedChannelUpdate)CalculatedChannelServicec                  (    t        t                     S )N)r   r        n/home/www/backend.miabetepe.com/venv/lib/python3.12/site-packages/sift_py/calculated_channels/_service_test.pycalculated_channel_servicer      s    #KM22r   z$xchannel1channel_referencechannel_identifierz$ychannel2c                 t   d}t         j                  j                  | j                  dt	        t        dt        t        t        j                  d            t        d      	      
                  5 }| j                  |       |j                  t        |             d d d        y # 1 sw Y   y xY w)Nztest-channel-keyGetCalculatedChanneltest-channel$x + $y
expressionselT
all_assetsquery_configurationasset_configurationname calculated_channel_configurationcalculated_channelreturn_value)
client_keyr   patchobject _calculated_channel_service_stubr   r   r   r	   Selr   get_calculated_channelassert_called_once_withr   )r   r6   mock_gets      r   )test_get_calculated_channel_by_client_keyr?   -   s    #J			"CC10#1O(K?CCyY) )LW[(\	2 

 
 
 
 
"99Z9P(('%	
!
 
 
   7.B..B7c                 t   d}t         j                  j                  | j                  dt	        t        dt        t        t        j                  d            t        d      	      
                  5 }| j                  |       |j                  t        |             d d d        y # 1 sw Y   y xY w)Nztest-channel-idr#   testr%   r&   r(   Tr*   r,   r/   r2   r4   )calculated_channel_idr7   )r   
channel_idr>   s      r   !test_get_calculated_channel_by_idrE   G   s    "J			"CC101O(K?CCyY) )LW[(\	2 

 
 
 
 
"99PZ9[(('&0	
!
 
 
r@   c                     t        j                  t        d      5  | j                          d d d        y # 1 sw Y   y xY wNz(Must provide either `id` or `client_key`)match)pytestraises
ValueErrorr<   r   s    r   *test_get_calculated_channel_missing_paramsrM   a   s2    	z)S	T <"99;< < <   6?c           	      &   t         j                  j                  | j                  dt	        g d            5 }| j                  dddd	      \  }}|j                  t        dddd	             |dk(  sJ |g k(  sJ 	 d d d        y # 1 sw Y   y xY w)
NListCalculatedChannelsnext)calculated_channelsnext_page_tokenr4   
   tokenfilterr0   )	page_size
page_tokenrV   order_by)r   r8   r9   r:   r   list_calculated_channelsr=   r   )r   	mock_listchannelsrU   s       r   test_list_calculated_channelsr]   f   s    			"CC 3\bc 
 
  
4MM	 N 
% 	)))"		
 2~~+  s   ABBc                 >   t        dddt        ddd      }t        ddddt        t	        d      t        t        j                  dt        D cg c]-  }t        |j                  d	      |j                  d
            / c}                        }t        j                  j                  | j                  dt        t        di |d             5 }| j                  |      \  }}|j!                  t#        di |       d d d        y c c}w # 1 sw Y   y xY w)Nr$   test descriptionr%   metersztest-keyT)r0   descriptionr'   channel_referencesunitsr6   r+   r*   r   r    r   r'   expression_channel_referencesr(   r.   r-   )r0   ra   r6   rc   r1   CreateCalculatedChannelr3   inapplicable_assetsr4   r   )r   rb   dictr   r   r	   r;   r   getr   r8   r9   r:   r   r   create_calculated_channelr=   r
   )r   configchchanmock_createchannel
validations          r   test_create_calculated_channelrs      s-   $&-F &)G Ct T C7;;( #53
 	 B.0ff5H.I/1vv6J/K3	!*
D, 
		"CC!40848 $
 
 
 
T 
8RRSYZ++,J,RT,RS
T 
T3
T 
Ts   2D /DDc                    t        dd      }t        dddt        t        d      t	        t	        j
                  d	g 
                  di       }t        di |}t        j                  j                  | d|      5 }t        j                  j                  | j                  dt        |d             5 }| j                  t        ddddg d      |d      \  }}|j                  t        t        di i |t        |j!                  d      |j!                  d            t#        ddg      d             d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nzupdated-namezupdated description)r0   ra   test-idr$   r_   Tr*   r%   rd   r(   rf    )rC   r0   ra   r1   rc   archived_date_get_calculated_channelr4   UpdateCalculatedChannelrh   z$x + $y * 2)rC   r0   ra   r'   rb   r+   ztest revision)update_notesr0   ra   )paths)r3   update_mask
user_notesr   )r   rj   r   r   r	   r;   r   r   r8   r9   r:   r   update_calculated_channelr   r=   r   rk   r   )r   updates	chan_dictmock_channel_mock_updaterq   rr   s           r   test_revise_calculated_channelr      s   %>G\]G'&)G Ct T C7;;(24!*
 I" %1y1L			"$=L 
 
 "
	
DJJ"CC!4+ $
  "
 
8RR#&/#.(#% ( S 
 	++*#4 $#GKK$7W[[Q^E_`$ &V],CD*		
/"
 "
 "
 "
 "
 "
s%    8E8BE>EE	EE$c           
      *   t         j                  j                  | j                  dt	        g d            5 }| j                  ddddd	
      \  }}|j                  t        ddddd	
             |dk(  sJ |g k(  sJ 	 d d d        y # 1 sw Y   y xY w)NListCalculatedChannelVersionsrQ   )calculated_channel_versionsrS   r4   ru   rT   rU   rV   r0   )rC   rW   rX   rV   rY   )r   r8   r9   r:   r    list_calculated_channel_versionsr=   r   )r   r[   versionsrU   s       r   %test_list_calculated_channel_versionsr      s    			"CC':(*F
 
 
  
4UU"+ V 
% 	))0&/"	
 2~~3  s   AB		Bc                     t        j                  t        d      5  | j                          d d d        y # 1 sw Y   y xY wrG   )rI   rJ   rK   r   rL   s    r   4test_list_calculated_channel_versions_missing_paramsr     s6    	z)S	T F"CCEF F FrN   )'unittestr   rI   google.protobuf.field_mask_pb2r   3sift.calculated_channels.v2.calculated_channels_pb2r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   #sift_py._internal.test_util.channelr   "sift_py.calculated_channels.configr   r   #sift_py.calculated_channels.servicer   fixturer   rb   r?   rE   rM   r]   rs   r   r   r   r   r   r   <module>r      s      4    $ < _ H 3 3 "(
 "(	 
4
4<
2+T\8
v:Fr   