
    S
hL                        d dl Z d dlZd dlZd dlmZ d dlZd dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZmZmZmZmZ  e            Zdd	d
dddgddddddddgdddddZ G d dej        j                  Z G d dej        j                  Z G d d ej        j                  Z G d! d"ej        j                  Z G d# d$ej        j                  Z G d% d&ej        j                  Zd' Zd( ZdS ))    N)Path)get_user_model)ContentFile)reverse)DEFAULT_CENTER)	DataLayerLicenceMapTeam	TileLayerFeatureCollectionFeatureExNTQPointg    `-@ghFH@)typecoordinatesDarkCyanBall)color	iconClassHerezDa place anonymous again 755)_umap_optionsnamedescription)r   idgeometry
propertiesTDonaui  )displayOnLoadr   r   )r   featuresr   c                   ,    e Zd ZdZ G d d          ZdS )LicenceFactoryWTFPLc                       e Zd ZeZdS )LicenceFactory.MetaN)__name__
__module____qualname__r	   model     Z/var/www/html/01_SiteInternet/03_Maps/venv/lib/python3.11/site-packages/umap/tests/base.pyMetar%   (   s        r+   r-   Nr&   r'   r(   r   r-   r*   r+   r,   r"   r"   %   sA        D         r+   r"   c                   4    e Zd ZdZdZdZ G d d          ZdS )TileLayerFactoryzTest tilelayerz.https://tile.openstreetmap.org/{z}/{x}/{y}.pngzTest layer attributionc                       e Zd ZeZdS )TileLayerFactory.MetaN)r&   r'   r(   r   r)   r*   r+   r,   r-   r2   1           r+   r-   N)r&   r'   r(   r   url_templateattributionr-   r*   r+   r,   r0   r0   ,   sK        DCL*K         r+   r0   c                   p    e Zd ZdZ ej        d           Z ej        dd          Z G d d          Z	dS )UserFactoryJoec                 Z    d                     | j                                                  S )Nz{0}@example.com)formatusernamelower)as    r,   <lambda>zUserFactory.<lambda>8   s#    #**1:66<<>> r+   set_password123123c                       e Zd ZeZdS )UserFactory.MetaN)r&   r'   r(   Userr)   r*   r+   r,   r-   rB   <           r+   r-   N)
r&   r'   r(   r;   factoryLazyAttributeemailPostGenerationMethodCallpasswordr-   r*   r+   r,   r7   r7   5   sq        H!G!>> E 0w/IIH         r+   r7   c                   ,    e Zd ZdZ G d d          ZdS )TeamFactoryzAwesome Teamc                       e Zd ZeZdS )TeamFactory.MetaN)r&   r'   r(   r   r)   r*   r+   r,   r-   rM   C   rD   r+   r-   Nr.   r*   r+   r,   rK   rK   @   sA        D         r+   rK   c                       e Zd ZdZdZeZ ej        ddgddddd	d
d	dedddddddddddd          Z	 ej
        e          Z ej
        e          Zej        Zed             Z G d d          ZdS )
MapFactoryztest mapztest-mapg*@gZxH@r   )r   r   Tz$Which is just the Danube, at the endF u   © OSM Contributors   r   z5https://a.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png)r5   maxZoomminZoomr4      )datalayersControlr   displayPopupFooterlicenceminiMapmoreControlr   scaleControl	tilelayertilelayersControlzoomzoomControlr   )r   r   r   c                 n    t          j        |d                   |d<   |d         |d         d         d<   |S )Nsettingsr   r   )copydeepcopy)clskwargss     r,   _adjust_kwargszMapFactory._adjust_kwargsl   s:     "]6*+=>>z39&>z<(0r+   c                       e Zd ZeZdS )MapFactory.MetaN)r&   r'   r(   r
   r)   r*   r+   r,   r-   rg   s   s        r+   r-   N)r&   r'   r(   r   slugr   centerrE   Dictr`   
SubFactoryr"   rW   r7   ownerr
   PUBLICshare_statusclassmethodre   r-   r*   r+   r,   rO   rO   G   s       DDFw| !34EF 
 &*E&+ # $#:! $[	  &*## & 1	
 	
 H: !g 00GG{++E:L  [         r+   rO   c                       e Zd Z ej        d           Z ej        e          ZdZ	dZ
dZ ej        dde	d          Zed             Z G d d          Zd	S )
DataLayerFactoryc                  (    t          j                    S )N)uuiduuid4r*   r+   r,   r>   zDataLayerFactory.<lambda>x   s    
 r+   ztest datalayerztest descriptionT)r   	browsabler   c                 p   d|v rt          j        |                    d                    }|                    di            d|d         v r"|d         | j        k    r|d         d         |d<   d|vr|                    di           |d<   n7t                                           }i t          j        j	        |d         |d<   |d         |d         d<   |d         |d         d<   |                    dd           |                    dg            t          t          j        |          d          |d	<   |S )
Ndatar   r   r`   r   r   r    zfoo.jsongeojson)ra   rb   pop
setdefaultr   getDATALAYER_DATArq   r`   	_defaultsr   jsondumps)rc   rd   rw   s      r,   re   zDataLayerFactory._adjust_kwargs   s?   V=F!3!344DOOOR000o...6&>SX3M3M!%o!6v!>v''%)XXor%B%Bz"!&&((D%"+5%$%D! &,F^z6"(.v_f% 3444
B''''
4(8(8*EEyr+   c                       e Zd ZeZdS )DataLayerFactory.MetaN)r&   r'   r(   r   r)   r*   r+   r,   r-   r      r3   r+   r-   N)r&   r'   r(   rE   LazyFunctionrs   rk   rO   mapr   r   display_on_loadrj   r`   ro   re   r-   r*   r+   r,   rq   rq   w   s        7 4 455D
'
Z
(
(CD$KOw|dtTTUUH  [*         r+   rq   c                     | j         dk    sJ t          j        | j                                                  }d|v sJ t          d          }|d         |k    sJ dS )N   login_requiredloginT)status_coder~   loadscontentdecoder   )responsejredirect_urls      r,   r   r      sn    3&&&&
8#**,,--Aq    7##L,....4r+   c                     t          d| j        j                   t          t                    j        dz  }|                     |           d S )NzIntercepted routezfixtures/empty_tile.png)path)printrequesturlr   __file__parentfulfill)router   s     r,   
mock_tilesr      sF    	
u}0111>> #<<D	MMtMr+   ) ra   r~   rs   pathlibr   rE   django.contrib.authr   django.core.files.baser   django.urlsr   
umap.formsr   umap.modelsr   r	   r
   r   r   rC   r|   djangoDjangoModelFactoryr"   r0   r7   rK   rO   rq   r   r   r*   r+   r,   <module>r      sh             . . . . . . . . . . . .       % % % % % % @ @ @ @ @ @ @ @ @ @ @ @ @ @~    .0AB 
 ,6F!K!K= 	
 	
 (,WCHH# *    W^6       w~8       '.3       '.3   - - - - -2 - - -`    w~8   D      r+   