Advertisement
mikofski

simengapi_app.tests.test_layouts_requests_simulate

Oct 8th, 2016
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 57.13 KB | None | 0 0
  1. [applmgr] dev-simeng2aws01:~/SimEngAPI> ./manage.py test -v3 simengapi_app.tests.test_layouts_requests_simulate
  2. Creating test database for alias 'default' ('test_simengapi')...
  3. Operations to perform:
  4.   Synchronize unmigrated apps: staticfiles, messages, rest_framework_swagger, rest_framework, storages, crispy_forms
  5.   Apply all migrations: admin, contenttypes, simengapi_app, auth, sessions
  6. Synchronizing apps without migrations:
  7. Running pre-migrate handlers for application admin
  8. Running pre-migrate handlers for application auth
  9. Running pre-migrate handlers for application contenttypes
  10. Running pre-migrate handlers for application sessions
  11. Running pre-migrate handlers for application simengapi_app
  12. Running pre-migrate handlers for application rest_framework
  13. Running pre-migrate handlers for application rest_framework_swagger
  14. Running pre-migrate handlers for application crispy_forms
  15.   Creating tables...
  16.     Running deferred SQL...
  17.   Installing custom SQL...
  18. Loading 'initial_data' fixtures...
  19. Checking '/home/applmgr/SimEngAPI' for fixtures...
  20. No fixture 'initial_data' in '/home/applmgr/SimEngAPI'.
  21. Loading 'initial_data' fixtures...
  22. Checking '/home/applmgr/SimEngAPI' for fixtures...
  23. No fixture 'initial_data' in '/home/applmgr/SimEngAPI'.
  24. Loading 'initial_data' fixtures...
  25. Checking '/home/applmgr/SimEngAPI' for fixtures...
  26. No fixture 'initial_data' in '/home/applmgr/SimEngAPI'.
  27. Loading 'initial_data' fixtures...
  28. Checking '/home/applmgr/SimEngAPI' for fixtures...
  29. No fixture 'initial_data' in '/home/applmgr/SimEngAPI'.
  30. Loading 'initial_data' fixtures...
  31. Checking '/home/applmgr/SimEngAPI' for fixtures...
  32. No fixture 'initial_data' in '/home/applmgr/SimEngAPI'.
  33. Loading 'initial_data' fixtures...
  34. Checking '/home/applmgr/SimEngAPI' for fixtures...
  35. No fixture 'initial_data' in '/home/applmgr/SimEngAPI'.
  36. Installed 0 object(s) from 0 fixture(s)
  37. Installed 0 object(s) from 0 fixture(s)
  38. Installed 0 object(s) from 0 fixture(s)
  39. Installed 0 object(s) from 0 fixture(s)
  40. Installed 0 object(s) from 0 fixture(s)
  41. Installed 0 object(s) from 0 fixture(s)
  42. Running migrations:
  43.   Rendering model states... DONE (2.127s)
  44.   Applying contenttypes.0001_initial... OK (0.067s)
  45.   Applying auth.0001_initial... OK (0.139s)
  46.   Applying admin.0001_initial... OK (0.045s)
  47.   Applying contenttypes.0002_remove_content_type_name... OK (0.051s)
  48.   Applying auth.0002_alter_permission_name_max_length... OK (0.027s)
  49.   Applying auth.0003_alter_user_email_max_length... OK (0.020s)
  50.   Applying auth.0004_alter_user_username_opts... OK (0.018s)
  51.   Applying auth.0005_alter_user_last_login_null... OK (0.019s)
  52.   Applying auth.0006_require_contenttypes_0002... OK (0.004s)
  53.   Applying sessions.0001_initial... OK (0.022s)
  54.   Applying simengapi_app.0001_initial... OK (0.387s)
  55.   Applying simengapi_app.0002_auto_20160405_2218... OK (0.029s)
  56.   Applying simengapi_app.0003_auto_20160411_1943... OK (0.252s)
  57.   Applying simengapi_app.0004_auto_20160413_2220... OK (0.370s)
  58.   Applying simengapi_app.0005_auto_20160421_2153... OK (0.177s)
  59.   Applying simengapi_app.0006_auto_20160426_1744... OK (0.339s)
  60.   Applying simengapi_app.0007_mountingsystem... OK (0.038s)
  61.   Applying simengapi_app.0008_auto_20160428_2230... OK (0.368s)
  62.   Applying simengapi_app.0009_auto_20160503_2017... OK (0.097s)
  63.   Applying simengapi_app.0010_auto_20160505_2042... OK (0.129s)
  64.   Applying simengapi_app.0011_auto_20160505_2045... OK (0.048s)
  65.   Applying simengapi_app.0012_auto_20160526_1613... OK (0.269s)
  66.   Applying simengapi_app.0013_auto_20160607_2003... OK (0.033s)
  67.   Applying simengapi_app.0014_auto_20160621_1920... OK (0.952s)
  68.   Applying simengapi_app.0015_auto_20160722_2229... OK (0.211s)
  69.   Applying simengapi_app.0016_auto_20160727_2155... OK (0.399s)
  70.   Applying simengapi_app.0017_auto_20160830_1257... OK (0.082s)
  71.   Applying simengapi_app.0018_auto_20160913_2133... OK (0.194s)
  72.   Applying simengapi_app.0019_auto_20160921_1524... OK (0.130s)
  73.   Applying simengapi_app.0020_auto_20160921_1802... OK (0.101s)
  74.   Applying simengapi_app.0021_mountingsystem_gcrlist... OK (0.047s)
  75. Running post-migrate handlers for application admin
  76. Adding permission 'admin | log entry | Can add log entry'
  77. Adding permission 'admin | log entry | Can change log entry'
  78. Adding permission 'admin | log entry | Can delete log entry'
  79. Running post-migrate handlers for application auth
  80. Adding permission 'auth | permission | Can add permission'
  81. Adding permission 'auth | permission | Can change permission'
  82. Adding permission 'auth | permission | Can delete permission'
  83. Adding permission 'auth | group | Can add group'
  84. Adding permission 'auth | group | Can change group'
  85. Adding permission 'auth | group | Can delete group'
  86. Adding permission 'auth | user | Can add user'
  87. Adding permission 'auth | user | Can change user'
  88. Adding permission 'auth | user | Can delete user'
  89. Running post-migrate handlers for application contenttypes
  90. Adding permission 'contenttypes | content type | Can add content type'
  91. Adding permission 'contenttypes | content type | Can change content type'
  92. Adding permission 'contenttypes | content type | Can delete content type'
  93. Running post-migrate handlers for application sessions
  94. Adding permission 'sessions | session | Can add session'
  95. Adding permission 'sessions | session | Can change session'
  96. Adding permission 'sessions | session | Can delete session'
  97. Running post-migrate handlers for application simengapi_app
  98. Adding permission 'simengapi_app | Manufacturer | Can add Manufacturer'
  99. Adding permission 'simengapi_app | Manufacturer | Can change Manufacturer'
  100. Adding permission 'simengapi_app | Manufacturer | Can delete Manufacturer'
  101. Adding permission 'simengapi_app | Module | Can add Module'
  102. Adding permission 'simengapi_app | Module | Can change Module'
  103. Adding permission 'simengapi_app | Module | Can delete Module'
  104. Adding permission 'simengapi_app | Inverter | Can add Inverter'
  105. Adding permission 'simengapi_app | Inverter | Can change Inverter'
  106. Adding permission 'simengapi_app | Inverter | Can delete Inverter'
  107. Adding permission 'simengapi_app | request | Can add request'
  108. Adding permission 'simengapi_app | request | Can change request'
  109. Adding permission 'simengapi_app | request | Can delete request'
  110. Adding permission 'simengapi_app | MountingSystem | Can add MountingSystem'
  111. Adding permission 'simengapi_app | MountingSystem | Can change MountingSystem'
  112. Adding permission 'simengapi_app | MountingSystem | Can delete MountingSystem'
  113. Adding permission 'simengapi_app | inverter list constraint | Can add inverter list constraint'
  114. Adding permission 'simengapi_app | inverter list constraint | Can change inverter list constraint'
  115. Adding permission 'simengapi_app | inverter list constraint | Can delete inverter list constraint'
  116. Adding permission 'simengapi_app | Assembly | Can add Assembly'
  117. Adding permission 'simengapi_app | Assembly | Can change Assembly'
  118. Adding permission 'simengapi_app | Assembly | Can delete Assembly'
  119. Adding permission 'simengapi_app | BalanceofSystemLossScheme | Can add BalanceofSystemLossScheme'
  120. Adding permission 'simengapi_app | BalanceofSystemLossScheme | Can change BalanceofSystemLossScheme'
  121. Adding permission 'simengapi_app | BalanceofSystemLossScheme | Can delete BalanceofSystemLossScheme'
  122. Adding permission 'simengapi_app | BalanceofSystemLossSchemeType | Can add BalanceofSystemLossSchemeType'
  123. Adding permission 'simengapi_app | BalanceofSystemLossSchemeType | Can change BalanceofSystemLossSchemeType'
  124. Adding permission 'simengapi_app | BalanceofSystemLossSchemeType | Can delete BalanceofSystemLossSchemeType'
  125. Adding permission 'simengapi_app | MountingSystemBOSScheme | Can add MountingSystemBOSScheme'
  126. Adding permission 'simengapi_app | MountingSystemBOSScheme | Can change MountingSystemBOSScheme'
  127. Adding permission 'simengapi_app | MountingSystemBOSScheme | Can delete MountingSystemBOSScheme'
  128. Adding permission 'simengapi_app | weather | Can add weather'
  129. Adding permission 'simengapi_app | weather | Can change weather'
  130. Adding permission 'simengapi_app | weather | Can delete weather'
  131. Adding permission 'simengapi_app | linke turbidity | Can add linke turbidity'
  132. Adding permission 'simengapi_app | linke turbidity | Can change linke turbidity'
  133. Adding permission 'simengapi_app | linke turbidity | Can delete linke turbidity'
  134. Adding permission 'simengapi_app | Rain and Snow Data | Can add Rain and Snow Data'
  135. Adding permission 'simengapi_app | Rain and Snow Data | Can change Rain and Snow Data'
  136. Adding permission 'simengapi_app | Rain and Snow Data | Can delete Rain and Snow Data'
  137. Adding permission 'simengapi_app | Simulation | Can add Simulation'
  138. Adding permission 'simengapi_app | Simulation | Can change Simulation'
  139. Adding permission 'simengapi_app | Simulation | Can delete Simulation'
  140. Running post-migrate handlers for application rest_framework
  141. Running post-migrate handlers for application rest_framework_swagger
  142. Running post-migrate handlers for application crispy_forms
  143. [DEBUG] 2016-10-08 06:01:47,149 (MainProcess) (MainThread)
  144. > mfg #10:
  145.         {u'parent_organization_id': None, u'manufacturer_id': 10, u'display_name': u'SunPower', u'full_name': u'SunPower Corporation'}
  146. [DEBUG] 2016-10-08 06:01:47,153 (MainProcess) (MainThread)
  147. > inverter #899:
  148.         {u'elevationAtPacoDerate': 0.0, u'MPPTHi': 600.0, u'PacoElevationDerate': 0.0, u'modelName': u'SB5000TL-US-22-240', u'Pso': 21.6, u'vintage': datetime.date(2013, 1, 1), u'Pnt': 1.0, u'TambMax': 60.0, u'Idcmax': 24.0, u'Pdco': 5186.1, u'C3': -0.0004522382, u'C2': 0.0010235466, u'C1': -5.32e-05, u'C0': -3.57e-06, u'DataSource': u'MFG', u'MPPTLow': 125.0, u'isInverterElevationDerated': False, u'Vdcmax': 600.0, u'Vdco': 400.0, u'Paco': 5000.0, u'manufacturer': <Manufacturer: SunPower Corporation>, u'TambMin': -40.0, u'alias': u'SB5000TL-US-22-240', u'TambPacoDerate': [0.0, 0.0], u'PacoTempDerate': [0.0, 0.0], u'Vaco': 240.0, u'numberMPPTChannels': 2, u'pvsim_id': 899, u'isInverterTemperatureDerated': False}
  149.  
  150. [DEBUG] 2016-10-08 06:01:47,155 (MainProcess) (MainThread)
  151. > created inverter #899:
  152.         <PVInverter: SunPower Corporation SB5000TL-US-22-240 [240.0] (2013)>
  153. [DEBUG] 2016-10-08 06:01:47,155 (MainProcess) (MainThread)
  154. > module #587:
  155.         {u'aIsc': 0.000395, u'A0': 0.957, u'shortTermDegOffset': 0.0, u'Diode0': 0.0, u'aModuleTempCoefficient': -3.46, u'Ixo': 6.2995, u'degradationF': 2300.0, u'mBVmp': 0.0, u'mBVoc': 0.0, u'RthB': 0.0, u'aImp': -0.00023, u'height': 1.559, u'flashAdjustmentOffset': 0.0, u'Ixxo': 4.4907, u'degradationRateLowerLimit': 0.0025, u'SCells': 96, u'effectiveCellArea': 0.0, u'degradationD0': 0.0003, u'LID_rate': 0.0, u'BeamAOI3': -2.175e-06, u'cells_per_wafer': 1, u'BeamAOI1': -0.000213, u'BeamAOI0': 1.0002, u'BeamAOI4': 5.2796e-08, u'BeamAOI5': -4.4351e-10, u'RthD': 0.0, u'modelName': u'SPR-E20-327', u'degradationD1': 0.0014, u'bModuleTempCoefficient': -0.07599, u'stringsPerModule': 1, u'vintage': datetime.date(2013, 1, 1), u'degradationC0': -1.0, u'A1': 0.0402, u'width': 1.046, u'A3': 0.0007141, u'A2': -0.008515, u'A4': -2.132e-05, u'C3': -7.224183, u'C2': 0.218474, u'Isco': 6.5623, u'BVmpo': -0.1938, u'C7': -0.0869, u'C6': 1.0869, u'C5': 0.0109, u'C4': 0.9891, u'vintageEstimated': False, u'parent': None, u'Voco': 64.9695, u'RthC': 0.0, u'BVoco': -0.186, u'diffuseFraction': 1.0, u'RthA': 0.0, u'Vmpo': 54.2828, u'Impo': 6.1345, u'manufacturer': <Manufacturer: SunPower Corporation>, u'DeltaTCell': 3.0, u'C0': 1.0115, u'BeamAOI2': 3.63416e-05, u'nameplate': 327.0, u'Diode5': 0.0, u'Diode4': 0.0, u'Diode7': 0.0, u'Diode6': 0.0, u'Diode1': 0.0, u'flash_test_ratio': 1.0, u'Diode3': 0.0, u'nDF': 1.011, u'alias': u'SPR-E20-327', u'DataSource': u'EST', u'Diode2': 0.0, u'cellTech': u'c-Si', u'C1': -0.0115, u'pvsim_id': 587}
  156. [DEBUG] 2016-10-08 06:01:47,157 (MainProcess) (MainThread)
  157. > created pvmodule #587:
  158.         <PVModule: SunPower Corporation SPR-E20-327 (2013)>
  159. test_layout_data_serializer (simengapi_app.tests.test_layouts_requests_simulate.SerializerTest) ... [DEBUG] 2016-10-08 06:01:47,158 (MainProcess) (MainThread)
  160. > serializer:
  161.         LayoutDataSerializer(data={u'CustomMountingSystem': None, u'HeightAboveGround': 4, u'ModuleCountPerString': 8, u'UseShadingCalculation': False, u'AxisTiltAngle': 0, u'IsOverrideLID': False, u'SiteShadingLoss': 0, u'ModuleLID': None, u'TrackerMisalignmentLoss': 0, u'IsSmartMount': False, u'MonthlyShading': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], u'MountingSurfaceSlope': 25, u'GCR': {u'GCRNS': 1, u'GCREW': 1}, u'ModuleOrientation': u'Portrait', u'UseBacktracking': False, u'IsOverrideFlashRating': False, u'ModuleFlashRating': None, u'PVModuleId': 587, u'SystemAzimuth': 0, u'FieldLayout': u'Rows', u'GroundSlopeAzimuth': 0, u'ParallelStringCount': 2, u'MountingSystemId': 1, u'StandOff': 0.0762}):
  162.     MountingSurfaceSlope = FloatField(label='Mounting Surface Slope [degrees]', max_value=90, min_value=-90)
  163.     SystemAzimuth = FloatField(help_text='Relative to south, east is positive, west is negative.', label='System Azimuth [degrees]', max_value=180, min_value=-180)
  164.     GroundSlopeAzimuth = FloatField(help_text='Relative to south, east is positive, west is negative.', label='Ground Slope Azimuth [degrees]', max_value=180, min_value=-180)
  165.     HeightAboveGround = FloatField(label='Height Above Ground [m]', min_value=0)
  166.     GCR = GCRDataSerializer(default={'GCRNS': 0, 'GCREW': 0}, label='GCR', required=False):
  167.         GCREW = FloatField(help_text='Ground coverage ratio in East-West direction as fraction', label='GCREW', max_value=1, min_value=0)
  168.         GCRNS = FloatField(help_text='Ground coverage ratio in North-South direction as fraction', label='GCRNS', max_value=1, min_value=0)
  169.     FieldLayout = ChoiceField(choices=['Soldier', 'Rows', 'Hexagonal'], default='Rows', label='Field Layout', required=False)
  170.     ModuleOrientation = ChoiceField(choices=['Landscape', 'Portrait'], default='Portrait', label='Module Orientation', required=False)
  171.     ModuleCountPerString = IntegerField(label='Module Count Per String', min_value=0)
  172.     ParallelStringCount = IntegerField(label='Parallel String Count', min_value=0)
  173.     PVModuleId = PrimaryKeyRelatedField(label='PV Module ID', queryset=[<PVModule: SunPower Corporation SPR-E20-327 (2013)>])
  174.     MountingSystemId = ChoiceField(choices=((1, 'Residential Retrofit'), (2, 'Residential SunTile'), (3, 'PowerGuard'), (4, 'T10'), (5, 'T5'), (6, 'T0 Tracker'), (7, 'T20 V2.1'), (8, 'T20 V2.2'), (9, 'T20 V2.3'), (10, 'Custom 2-Axis Tracker'), (11, 'Custom Stationary Fixed Tilt (Ground)'), (12, 'Custom Single-Axis Tracker'), (13, 'Custom Polar-Axis Tracker'), (14, 'Custom Stationary Fixed Tilt (Roof)'), (15, 'Oasis C1'), (16, 'ACPV v1'), (17, 'C7'), (18, 'ACPV v2'), (19, 'BIPV'), (20, 'S10'), (21, 'D10')), label='Mounting System ID')
  175.     AxisTiltAngle = FloatField(label='Axis Tilt Angle [degrees]', max_value=180, min_value=-180)
  176.     IsSmartMount = BooleanField(label='Smart Mount')
  177.     StandOff = FloatField(label='Standoff [m]')
  178.     UseBacktracking = BooleanField(label='Backtracking')
  179.     UseShadingCalculation = BooleanField(label='Calculate Shading')
  180.     MonthlyShading = CustomListField(child=FloatField(max_value=1, min_value=0), label='Monthly Shading', validators=[<django.core.validators.MinLengthValidator object>, <django.core.validators.MaxLengthValidator object>])
  181.     CustomMountingSystem = CustomMountingSystemDataSerializer(allow_null=True, default={'ModuleTiltMax': 0, 'AxisRotationMin': 0, 'ModuleTiltMin': 0, 'AxisRotationMax': 0}, label='Custom Mounting System', required=False):
  182.         ModuleTiltMin = FloatField(label='Minimum Module Tilt [degrees]', max_value=0, min_value=-180)
  183.         ModuleTiltMax = FloatField(label='Maximum Module Tilt [degrees]', max_value=180, min_value=0)
  184.         AxisRotationMin = FloatField(label='Minimum Axis Rotation [degrees]', max_value=0, min_value=-180)
  185.         AxisRotationMax = FloatField(label='Maximum Axis Rotation [degrees]', max_value=180, min_value=0)
  186.     TrackerMisalignmentLoss = FloatField(label='Tracker Misalignment Loss', max_value=1, min_value=0)
  187.     SiteShadingLoss = FloatField(label='Site Shading Loss', max_value=1, min_value=0)
  188.     IsOverrideFlashRating = BooleanField(label='Override Flash Rating')
  189.     ModuleFlashRating = FloatField(allow_null=True, default=0, label='Module Flash Rating [W]', min_value=0, required=False)
  190.     IsOverrideLID = BooleanField(label='Override Module LID')
  191.     ModuleLID = FloatField(allow_null=True, default=0, label='Module LID', min_value=0, required=False)
  192. [DEBUG] 2016-10-08 06:01:47,178 (MainProcess) (MainThread)
  193. > is valid: True
  194. [DEBUG] 2016-10-08 06:01:47,178 (MainProcess) (MainThread)
  195. > errors:
  196.         {}
  197. [DEBUG] 2016-10-08 06:01:47,178 (MainProcess) (MainThread)
  198. > field: u'SiteShadingLoss'
  199. [DEBUG] 2016-10-08 06:01:47,178 (MainProcess) (MainThread)
  200. > field: u'HeightAboveGround'
  201. [DEBUG] 2016-10-08 06:01:47,178 (MainProcess) (MainThread)
  202. > field: u'ModuleCountPerString'
  203. [DEBUG] 2016-10-08 06:01:47,178 (MainProcess) (MainThread)
  204. > field: u'FieldLayout'
  205. [DEBUG] 2016-10-08 06:01:47,179 (MainProcess) (MainThread)
  206. > field: u'AxisTiltAngle'
  207. [DEBUG] 2016-10-08 06:01:47,179 (MainProcess) (MainThread)
  208. > field: u'IsOverrideLID'
  209. [DEBUG] 2016-10-08 06:01:47,179 (MainProcess) (MainThread)
  210. > field: u'CustomMountingSystem'
  211. [DEBUG] 2016-10-08 06:01:47,179 (MainProcess) (MainThread)
  212. > field: u'ModuleLID'
  213. [DEBUG] 2016-10-08 06:01:47,179 (MainProcess) (MainThread)
  214. > field: u'TrackerMisalignmentLoss'
  215. [DEBUG] 2016-10-08 06:01:47,179 (MainProcess) (MainThread)
  216. > field: u'IsSmartMount'
  217. [DEBUG] 2016-10-08 06:01:47,179 (MainProcess) (MainThread)
  218. > field: u'MonthlyShading'
  219. [DEBUG] 2016-10-08 06:01:47,179 (MainProcess) (MainThread)
  220. > field: u'MountingSurfaceSlope'
  221. [DEBUG] 2016-10-08 06:01:47,179 (MainProcess) (MainThread)
  222. > field: u'GCR'
  223. [DEBUG] 2016-10-08 06:01:47,179 (MainProcess) (MainThread)
  224. > class: <class 'simengapi_app.serializers.GCRData'>
  225. [DEBUG] 2016-10-08 06:01:47,180 (MainProcess) (MainThread)
  226. > field: u'GCRNS'
  227. [DEBUG] 2016-10-08 06:01:47,180 (MainProcess) (MainThread)
  228. > field: u'GCREW'
  229. [DEBUG] 2016-10-08 06:01:47,180 (MainProcess) (MainThread)
  230. > class attribute values:
  231.         <simengapi_app.serializers.GCRData object at 0x6461c10>
  232. [DEBUG] 2016-10-08 06:01:47,180 (MainProcess) (MainThread)
  233. > field: u'ModuleOrientation'
  234. [DEBUG] 2016-10-08 06:01:47,180 (MainProcess) (MainThread)
  235. > field: u'UseBacktracking'
  236. [DEBUG] 2016-10-08 06:01:47,180 (MainProcess) (MainThread)
  237. > field: u'IsOverrideFlashRating'
  238. [DEBUG] 2016-10-08 06:01:47,180 (MainProcess) (MainThread)
  239. > field: u'ModuleFlashRating'
  240. [DEBUG] 2016-10-08 06:01:47,180 (MainProcess) (MainThread)
  241. > field: u'PVModuleId'
  242. [DEBUG] 2016-10-08 06:01:47,180 (MainProcess) (MainThread)
  243. > field: u'SystemAzimuth'
  244. [DEBUG] 2016-10-08 06:01:47,180 (MainProcess) (MainThread)
  245. > field: u'UseShadingCalculation'
  246. [DEBUG] 2016-10-08 06:01:47,181 (MainProcess) (MainThread)
  247. > field: u'GroundSlopeAzimuth'
  248. [DEBUG] 2016-10-08 06:01:47,181 (MainProcess) (MainThread)
  249. > field: u'ParallelStringCount'
  250. [DEBUG] 2016-10-08 06:01:47,181 (MainProcess) (MainThread)
  251. > field: u'MountingSystemId'
  252. [DEBUG] 2016-10-08 06:01:47,181 (MainProcess) (MainThread)
  253. > field: u'StandOff'
  254. [DEBUG] 2016-10-08 06:01:47,181 (MainProcess) (MainThread)
  255. > layout data:
  256.         {'SiteShadingLoss': 0.0, 'HeightAboveGround': 4.0, 'ModuleCountPerString': 8, 'FieldLayout': 'Rows', 'AxisTiltAngle': 0.0, 'IsOverrideLID': False, 'CustomMountingSystem': None, 'ModuleLID': None, 'TrackerMisalignmentLoss': 0.0, 'IsSmartMount': False, 'MonthlyShading': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'MountingSurfaceSlope': 25.0, 'GCR': OrderedDict([('GCREW', 1.0), ('GCRNS', 1.0)]), 'ModuleOrientation': 'Portrait', 'UseBacktracking': False, 'IsOverrideFlashRating': False, 'ModuleFlashRating': None, 'PVModuleId': 587, 'SystemAzimuth': 0.0, 'UseShadingCalculation': False, 'GroundSlopeAzimuth': 0.0, 'ParallelStringCount': 2, 'MountingSystemId': 1, 'StandOff': 0.0762}
  257. [DEBUG] 2016-10-08 06:01:47,182 (MainProcess) (MainThread)
  258. > simulate obj:
  259.         <simengapi_app.serializers.LayoutData object at 0x44f8ad0>
  260. [DEBUG] 2016-10-08 06:01:47,182 (MainProcess) (MainThread)
  261. > serializer:
  262.         LayoutDataSerializer(<simengapi_app.serializers.LayoutData object>):
  263.     MountingSurfaceSlope = FloatField(label='Mounting Surface Slope [degrees]', max_value=90, min_value=-90)
  264.     SystemAzimuth = FloatField(help_text='Relative to south, east is positive, west is negative.', label='System Azimuth [degrees]', max_value=180, min_value=-180)
  265.     GroundSlopeAzimuth = FloatField(help_text='Relative to south, east is positive, west is negative.', label='Ground Slope Azimuth [degrees]', max_value=180, min_value=-180)
  266.     HeightAboveGround = FloatField(label='Height Above Ground [m]', min_value=0)
  267.     GCR = GCRDataSerializer(default={'GCRNS': 0, 'GCREW': 0}, label='GCR', required=False):
  268.         GCREW = FloatField(help_text='Ground coverage ratio in East-West direction as fraction', label='GCREW', max_value=1, min_value=0)
  269.         GCRNS = FloatField(help_text='Ground coverage ratio in North-South direction as fraction', label='GCRNS', max_value=1, min_value=0)
  270.     FieldLayout = ChoiceField(choices=['Soldier', 'Rows', 'Hexagonal'], default='Rows', label='Field Layout', required=False)
  271.     ModuleOrientation = ChoiceField(choices=['Landscape', 'Portrait'], default='Portrait', label='Module Orientation', required=False)
  272.     ModuleCountPerString = IntegerField(label='Module Count Per String', min_value=0)
  273.     ParallelStringCount = IntegerField(label='Parallel String Count', min_value=0)
  274.     PVModuleId = PrimaryKeyRelatedField(label='PV Module ID', queryset=[<PVModule: SunPower Corporation SPR-E20-327 (2013)>])
  275.     MountingSystemId = ChoiceField(choices=((1, 'Residential Retrofit'), (2, 'Residential SunTile'), (3, 'PowerGuard'), (4, 'T10'), (5, 'T5'), (6, 'T0 Tracker'), (7, 'T20 V2.1'), (8, 'T20 V2.2'), (9, 'T20 V2.3'), (10, 'Custom 2-Axis Tracker'), (11, 'Custom Stationary Fixed Tilt (Ground)'), (12, 'Custom Single-Axis Tracker'), (13, 'Custom Polar-Axis Tracker'), (14, 'Custom Stationary Fixed Tilt (Roof)'), (15, 'Oasis C1'), (16, 'ACPV v1'), (17, 'C7'), (18, 'ACPV v2'), (19, 'BIPV'), (20, 'S10'), (21, 'D10')), label='Mounting System ID')
  276.     AxisTiltAngle = FloatField(label='Axis Tilt Angle [degrees]', max_value=180, min_value=-180)
  277.     IsSmartMount = BooleanField(label='Smart Mount')
  278.     StandOff = FloatField(label='Standoff [m]')
  279.     UseBacktracking = BooleanField(label='Backtracking')
  280.     UseShadingCalculation = BooleanField(label='Calculate Shading')
  281.     MonthlyShading = CustomListField(child=FloatField(max_value=1, min_value=0), label='Monthly Shading', validators=[<django.core.validators.MinLengthValidator object>, <django.core.validators.MaxLengthValidator object>])
  282.     CustomMountingSystem = CustomMountingSystemDataSerializer(allow_null=True, default={'ModuleTiltMax': 0, 'AxisRotationMin': 0, 'ModuleTiltMin': 0, 'AxisRotationMax': 0}, label='Custom Mounting System', required=False):
  283.         ModuleTiltMin = FloatField(label='Minimum Module Tilt [degrees]', max_value=0, min_value=-180)
  284.         ModuleTiltMax = FloatField(label='Maximum Module Tilt [degrees]', max_value=180, min_value=0)
  285.         AxisRotationMin = FloatField(label='Minimum Axis Rotation [degrees]', max_value=0, min_value=-180)
  286.         AxisRotationMax = FloatField(label='Maximum Axis Rotation [degrees]', max_value=180, min_value=0)
  287.     TrackerMisalignmentLoss = FloatField(label='Tracker Misalignment Loss', max_value=1, min_value=0)
  288.     SiteShadingLoss = FloatField(label='Site Shading Loss', max_value=1, min_value=0)
  289.     IsOverrideFlashRating = BooleanField(label='Override Flash Rating')
  290.     ModuleFlashRating = FloatField(allow_null=True, default=0, label='Module Flash Rating [W]', min_value=0, required=False)
  291.     IsOverrideLID = BooleanField(label='Override Module LID')
  292.     ModuleLID = FloatField(allow_null=True, default=0, label='Module LID', min_value=0, required=False)
  293. [DEBUG] 2016-10-08 06:01:47,204 (MainProcess) (MainThread)
  294. > is valid: True
  295. [DEBUG] 2016-10-08 06:01:47,204 (MainProcess) (MainThread)
  296. > errors:
  297.         {}
  298. ok
  299. test_make_request (simengapi_app.tests.test_layouts_requests_simulate.SerializerTest) ... [DEBUG] 2016-10-08 06:01:47,219 (MainProcess) (MainThread)
  300. > field: u'Elevation'
  301. [DEBUG] 2016-10-08 06:01:47,219 (MainProcess) (MainThread)
  302. > field: u'ArraySettingsType'
  303. [DEBUG] 2016-10-08 06:01:47,219 (MainProcess) (MainThread)
  304. > field: u'Losses'
  305. [DEBUG] 2016-10-08 06:01:47,219 (MainProcess) (MainThread)
  306. > class: <class 'simengapi_app.serializers.LossesData'>
  307. [DEBUG] 2016-10-08 06:01:47,219 (MainProcess) (MainThread)
  308. > field: u'DynamicSoiling'
  309. [DEBUG] 2016-10-08 06:01:47,220 (MainProcess) (MainThread)
  310. > class: <class 'simengapi_app.serializers.DynamicSoilingData'>
  311. [DEBUG] 2016-10-08 06:01:47,220 (MainProcess) (MainThread)
  312. > field: u'LastCleanedDate'
  313. [DEBUG] 2016-10-08 06:01:47,220 (MainProcess) (MainThread)
  314. > field: u'NumberOfWashes'
  315. [DEBUG] 2016-10-08 06:01:47,220 (MainProcess) (MainThread)
  316. > field: u'SoilingRateMultiplier'
  317. [DEBUG] 2016-10-08 06:01:47,220 (MainProcess) (MainThread)
  318. > field: u'ManualWashingDates'
  319. [DEBUG] 2016-10-08 06:01:47,220 (MainProcess) (MainThread)
  320. > field: u'CalculateWashingDates'
  321. [DEBUG] 2016-10-08 06:01:47,220 (MainProcess) (MainThread)
  322. > class attribute values:
  323.         <simengapi_app.serializers.DynamicSoilingData object at 0x52ba3d0>
  324. [DEBUG] 2016-10-08 06:01:47,220 (MainProcess) (MainThread)
  325. > field: u'CustomLossScheme'
  326. [DEBUG] 2016-10-08 06:01:47,220 (MainProcess) (MainThread)
  327. > class: <class 'simengapi_app.serializers.CustomLossSchemeData'>
  328. [DEBUG] 2016-10-08 06:01:47,221 (MainProcess) (MainThread)
  329. > field: u'TransformerNighttimeLoss'
  330. [DEBUG] 2016-10-08 06:01:47,221 (MainProcess) (MainThread)
  331. > field: u'SystemAvailability'
  332. [DEBUG] 2016-10-08 06:01:47,221 (MainProcess) (MainThread)
  333. > field: u'DCCablingLoss'
  334. [DEBUG] 2016-10-08 06:01:47,221 (MainProcess) (MainThread)
  335. > field: u'DCMismatchLoss'
  336. [DEBUG] 2016-10-08 06:01:47,221 (MainProcess) (MainThread)
  337. > field: u'TransformerDaytimeLoss'
  338. [DEBUG] 2016-10-08 06:01:47,221 (MainProcess) (MainThread)
  339. > field: u'ACWiringLoss'
  340. [DEBUG] 2016-10-08 06:01:47,221 (MainProcess) (MainThread)
  341. > field: u'ACAuxiliaryLoss'
  342. [DEBUG] 2016-10-08 06:01:47,221 (MainProcess) (MainThread)
  343. > class attribute values:
  344.         <simengapi_app.serializers.CustomLossSchemeData object at 0x476a410>
  345. [DEBUG] 2016-10-08 06:01:47,221 (MainProcess) (MainThread)
  346. > field: u'NumberOfSnowDays'
  347. [DEBUG] 2016-10-08 06:01:47,221 (MainProcess) (MainThread)
  348. > field: u'CalculateSnowLoss'
  349. [DEBUG] 2016-10-08 06:01:47,222 (MainProcess) (MainThread)
  350. > class attribute values:
  351.         <simengapi_app.serializers.LossesData object at 0x4b0eb10>
  352. [DEBUG] 2016-10-08 06:01:47,222 (MainProcess) (MainThread)
  353. > field: u'Longitude'
  354. [DEBUG] 2016-10-08 06:01:47,222 (MainProcess) (MainThread)
  355. > field: u'GroundAlbedo'
  356. [DEBUG] 2016-10-08 06:01:47,222 (MainProcess) (MainThread)
  357. > field: u'Inverters'
  358. [DEBUG] 2016-10-08 06:01:47,222 (MainProcess) (MainThread)
  359. > nested class: <class 'simengapi_app.serializers.InverterData'>
  360. [DEBUG] 2016-10-08 06:01:47,222 (MainProcess) (MainThread)
  361. > field: u'Layouts'
  362. [DEBUG] 2016-10-08 06:01:47,222 (MainProcess) (MainThread)
  363. > nested class: <class 'simengapi_app.serializers.LayoutData'>
  364. [DEBUG] 2016-10-08 06:01:47,222 (MainProcess) (MainThread)
  365. > field: u'SiteShadingLoss'
  366. [DEBUG] 2016-10-08 06:01:47,223 (MainProcess) (MainThread)
  367. > field: u'HeightAboveGround'
  368. [DEBUG] 2016-10-08 06:01:47,223 (MainProcess) (MainThread)
  369. > field: u'ModuleCountPerString'
  370. [DEBUG] 2016-10-08 06:01:47,223 (MainProcess) (MainThread)
  371. > field: u'FieldLayout'
  372. [DEBUG] 2016-10-08 06:01:47,223 (MainProcess) (MainThread)
  373. > field: u'AxisTiltAngle'
  374. [DEBUG] 2016-10-08 06:01:47,223 (MainProcess) (MainThread)
  375. > field: u'IsOverrideLID'
  376. [DEBUG] 2016-10-08 06:01:47,223 (MainProcess) (MainThread)
  377. > field: u'CustomMountingSystem'
  378. [DEBUG] 2016-10-08 06:01:47,223 (MainProcess) (MainThread)
  379. > field: u'ModuleLID'
  380. [DEBUG] 2016-10-08 06:01:47,223 (MainProcess) (MainThread)
  381. > field: u'TrackerMisalignmentLoss'
  382. [DEBUG] 2016-10-08 06:01:47,223 (MainProcess) (MainThread)
  383. > field: u'IsSmartMount'
  384. [DEBUG] 2016-10-08 06:01:47,223 (MainProcess) (MainThread)
  385. > field: u'MonthlyShading'
  386. [DEBUG] 2016-10-08 06:01:47,224 (MainProcess) (MainThread)
  387. > field: u'MountingSurfaceSlope'
  388. [DEBUG] 2016-10-08 06:01:47,224 (MainProcess) (MainThread)
  389. > field: u'GCR'
  390. [DEBUG] 2016-10-08 06:01:47,224 (MainProcess) (MainThread)
  391. > class: <class 'simengapi_app.serializers.GCRData'>
  392. [DEBUG] 2016-10-08 06:01:47,224 (MainProcess) (MainThread)
  393. > field: u'GCRNS'
  394. [DEBUG] 2016-10-08 06:01:47,224 (MainProcess) (MainThread)
  395. > field: u'GCREW'
  396. [DEBUG] 2016-10-08 06:01:47,224 (MainProcess) (MainThread)
  397. > class attribute values:
  398.         <simengapi_app.serializers.GCRData object at 0x4f6d190>
  399. [DEBUG] 2016-10-08 06:01:47,224 (MainProcess) (MainThread)
  400. > field: u'ModuleOrientation'
  401. [DEBUG] 2016-10-08 06:01:47,224 (MainProcess) (MainThread)
  402. > field: u'UseBacktracking'
  403. [DEBUG] 2016-10-08 06:01:47,224 (MainProcess) (MainThread)
  404. > field: u'IsOverrideFlashRating'
  405. [DEBUG] 2016-10-08 06:01:47,224 (MainProcess) (MainThread)
  406. > field: u'ModuleFlashRating'
  407. [DEBUG] 2016-10-08 06:01:47,225 (MainProcess) (MainThread)
  408. > field: u'PVModuleId'
  409. [DEBUG] 2016-10-08 06:01:47,225 (MainProcess) (MainThread)
  410. > field: u'SystemAzimuth'
  411. [DEBUG] 2016-10-08 06:01:47,225 (MainProcess) (MainThread)
  412. > field: u'UseShadingCalculation'
  413. [DEBUG] 2016-10-08 06:01:47,225 (MainProcess) (MainThread)
  414. > field: u'GroundSlopeAzimuth'
  415. [DEBUG] 2016-10-08 06:01:47,225 (MainProcess) (MainThread)
  416. > field: u'ParallelStringCount'
  417. [DEBUG] 2016-10-08 06:01:47,225 (MainProcess) (MainThread)
  418. > field: u'MountingSystemId'
  419. [DEBUG] 2016-10-08 06:01:47,225 (MainProcess) (MainThread)
  420. > field: u'StandOff'
  421. [DEBUG] 2016-10-08 06:01:47,225 (MainProcess) (MainThread)
  422. > nested class attribute values:
  423.         [<simengapi_app.serializers.LayoutData object at 0x4f6d3d0>]
  424. [DEBUG] 2016-10-08 06:01:47,225 (MainProcess) (MainThread)
  425. > field: u'IsGCEInverter'
  426. [DEBUG] 2016-10-08 06:01:47,225 (MainProcess) (MainThread)
  427. > field: u'GCEInverter'
  428. [DEBUG] 2016-10-08 06:01:47,226 (MainProcess) (MainThread)
  429. > field: u'InverterCount'
  430. [DEBUG] 2016-10-08 06:01:47,226 (MainProcess) (MainThread)
  431. > field: u'StandardInverterId'
  432. [DEBUG] 2016-10-08 06:01:47,226 (MainProcess) (MainThread)
  433. > nested class attribute values:
  434.         [<simengapi_app.serializers.InverterData object at 0x52b7f10>]
  435. [DEBUG] 2016-10-08 06:01:47,226 (MainProcess) (MainThread)
  436. > field: u'Latitude'
  437. [DEBUG] 2016-10-08 06:01:47,226 (MainProcess) (MainThread)
  438. > elevation: 14[m]
  439. [DEBUG] 2016-10-08 06:01:47,226 (MainProcess) (MainThread)
  440. > simulate data request:
  441.         {'maxNegativeRotation': [None], 'useSmartmount': [False], 'XfmrEffNight': 1.0, 'minModuleTilt': [None], 'backtracking': [False], 'NumberOfDaysWithSnow': 0, 'snowMode': False, 'UserSpecifiedSoilingRateMultiplier': 1.0, 'moduleOrientation': [1], 'MonthlyShading': [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]], 'isOverrideFlashRating': [False], 'mountingSystemID': [1], 'LossDCWiring': 0.01, 'maxPositiveRotation': [None], 'fieldLayout': [1], 'LossDCMismatch': 0.008, 'trackerMisalignmentLoss': [0.0], 'name': 'test', 'mountingSurfaceHeight': [4.0], 'LossSiteShading': [0.0], 'locationType': 'urban', 'mountingSurfaceSlope': [0.43633231299858238], 'Availability': 0.99, 'maxModuleTilt': [None], 'moduleFlashRating': [None], 'efficiencyGCE': [None], 'LossACWiring': 0.002, 'modulesPerStringEW': [8], 'moduleLID': [None], 'mountingSurfaceAzimuth': [0.0], 'EWGCR': [1.0], 'numberManualWashes': 0, 'lastCleanedDate': datetime.date(2015, 1, 1), 'PacoGCE': [None], 'manualWashDays': [datetime.date(2015, 1, 1)], 'albedo': 0.2, 'LossAuxLoad': 0.0, 'calculateShading': [False], 'NSGCR': [1.0], 'modulesPerStringNS': [1], 'isOverrideLID': [False], 'systemAzimuth': [0.0], 'InverterIndex': [0], 'soilingPct': None, 'inverterCount': [1], 'isInverterGCE': [False], 'inverterID': [899], 'axisTilt': [0.0], 'parallelStringsPerInverter': [2], 'XfmrEffDay': 1.0, 'moduleID': [587], 'standoff': [0.0762]}
  442. ok
  443. test_simulate_data_serializer (simengapi_app.tests.test_layouts_requests_simulate.SerializerTest) ... [DEBUG] 2016-10-08 06:01:47,232 (MainProcess) (MainThread)
  444. > serializer:
  445.         SimulateDataSerializer(data={u'Elevation': 14, u'ArraySettingsType': u'Urban', u'Losses': {u'DynamicSoiling': {u'LastCleanedDate': u'2015-01-01', u'ManualWashingDates': [u'2015-01-01'], u'CalculateWashingDates': False, u'SoilingRateMultiplier': 1, u'NumberOfWashes': 0, u'CalculateSnowLoss': True}, u'CustomLossScheme': {u'TransformerNighttimeLoss': 0, u'SystemAvailability': 0.99, u'ACWiringLoss': 0.002, u'DCMismatchLoss': 0.008, u'TransformerDaytimeLoss': 0, u'DCCablingLoss': 0.01, u'ACAuxiliaryLoss': 0}, u'NumberOfSnowDays': 0}, u'Longitude': -122.358185, u'GroundAlbedo': 0.2, u'Inverters': [{u'StandardInverterId': 899, u'Layouts': [{u'CustomMountingSystem': None, u'HeightAboveGround': 4, u'ModuleCountPerString': 8, u'UseShadingCalculation': False, u'AxisTiltAngle': 0, u'IsOverrideLID': False, u'SiteShadingLoss': 0, u'ModuleLID': None, u'TrackerMisalignmentLoss': 0, u'IsSmartMount': False, u'MonthlyShading': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], u'MountingSurfaceSlope': 25, u'GCR': {u'GCRNS': 1, u'GCREW': 1}, u'ModuleOrientation': u'Portrait', u'UseBacktracking': False, u'IsOverrideFlashRating': False, u'ModuleFlashRating': None, u'PVModuleId': 587, u'SystemAzimuth': 0, u'FieldLayout': u'Rows', u'GroundSlopeAzimuth': 0, u'ParallelStringCount': 2, u'MountingSystemId': 1, u'StandOff': 0.0762}], u'InverterCount': 1, u'GCEInverter': None, u'IsGCEInverter': False}], u'Latitude': 37.911211}):
  446.     ArraySettingsType = ChoiceField(choices=['Urban', 'OpenSpace'], help_text='Type of array settings: Urban | Open Space', label='Array Settings Type')
  447.     Latitude = FloatField(help_text='[degrees]', max_value=90, min_value=-90, required=False)
  448.     Longitude = FloatField(help_text='[degrees]', max_value=180, min_value=-180, required=False)
  449.     Elevation = FloatField(help_text='[meters]')
  450.     GroundAlbedo = FloatField(label='Ground Albedo', max_value=1, min_value=0)
  451.     WeatherDataHeaderId = IntegerField(allow_null=True, label='Weather Data Header ID', min_value=1, required=False)
  452.     RainfallDataHeaderId = IntegerField(allow_null=True, label='Rainfall Data Header ID', min_value=1, required=False)
  453.     SnowDataHeaderId = IntegerField(allow_null=True, label='Snow Data Header ID', min_value=1, required=False)
  454.     Inverters = InverterDataSerializer(many=True, style={'base_template': 'textarea.html'}):
  455.         StandardInverterId = PrimaryKeyRelatedField(label='Standard Inverter ID', queryset=[<PVInverter: SunPower Corporation SB5000TL-US-22-240 [240] (2013)>], required=False)
  456.         IsGCEInverter = BooleanField(help_text='Specifies whether inverter is Generic Constant Efficiency (GCE) inverter', label='GCE Inverter')
  457.         GCEInverter = GCEInverterDataSerializer(allow_null=True, default={'Paco': 0, 'EfficiencyRating': 0}, label='GCE Inverter', required=False):
  458.             EfficiencyRating = FloatField(label='Efficiency Rating', max_value=1, min_value=0)
  459.             Paco = FloatField(help_text='Inverter AC capacity in watts', label='Pac0 [W]', min_value=0)
  460.         InverterCount = IntegerField(label='Inverter Count', min_value=0)
  461.         Layouts = LayoutDataSerializer(many=True, style={'base_template': 'textarea.html'}):
  462.             MountingSurfaceSlope = FloatField(label='Mounting Surface Slope [degrees]', max_value=90, min_value=-90)
  463.             SystemAzimuth = FloatField(help_text='Relative to south, east is positive, west is negative.', label='System Azimuth [degrees]', max_value=180, min_value=-180)
  464.             GroundSlopeAzimuth = FloatField(help_text='Relative to south, east is positive, west is negative.', label='Ground Slope Azimuth [degrees]', max_value=180, min_value=-180)
  465.             HeightAboveGround = FloatField(label='Height Above Ground [m]', min_value=0)
  466.             GCR = GCRDataSerializer(default={'GCRNS': 0, 'GCREW': 0}, label='GCR', required=False):
  467.                 GCREW = FloatField(help_text='Ground coverage ratio in East-West direction as fraction', label='GCREW', max_value=1, min_value=0)
  468.                 GCRNS = FloatField(help_text='Ground coverage ratio in North-South direction as fraction', label='GCRNS', max_value=1, min_value=0)
  469.             FieldLayout = ChoiceField(choices=['Soldier', 'Rows', 'Hexagonal'], default='Rows', label='Field Layout', required=False)
  470.             ModuleOrientation = ChoiceField(choices=['Landscape', 'Portrait'], default='Portrait', label='Module Orientation', required=False)
  471.             ModuleCountPerString = IntegerField(label='Module Count Per String', min_value=0)
  472.             ParallelStringCount = IntegerField(label='Parallel String Count', min_value=0)
  473.             PVModuleId = PrimaryKeyRelatedField(label='PV Module ID', queryset=[<PVModule: SunPower Corporation SPR-E20-327 (2013)>])
  474.             MountingSystemId = ChoiceField(choices=((1, 'Residential Retrofit'), (2, 'Residential SunTile'), (3, 'PowerGuard'), (4, 'T10'), (5, 'T5'), (6, 'T0 Tracker'), (7, 'T20 V2.1'), (8, 'T20 V2.2'), (9, 'T20 V2.3'), (10, 'Custom 2-Axis Tracker'), (11, 'Custom Stationary Fixed Tilt (Ground)'), (12, 'Custom Single-Axis Tracker'), (13, 'Custom Polar-Axis Tracker'), (14, 'Custom Stationary Fixed Tilt (Roof)'), (15, 'Oasis C1'), (16, 'ACPV v1'), (17, 'C7'), (18, 'ACPV v2'), (19, 'BIPV'), (20, 'S10'), (21, 'D10')), label='Mounting System ID')
  475.             AxisTiltAngle = FloatField(label='Axis Tilt Angle [degrees]', max_value=180, min_value=-180)
  476.             IsSmartMount = BooleanField(label='Smart Mount')
  477.             StandOff = FloatField(label='Standoff [m]')
  478.             UseBacktracking = BooleanField(label='Backtracking')
  479.             UseShadingCalculation = BooleanField(label='Calculate Shading')
  480.             MonthlyShading = CustomListField(child=FloatField(max_value=1, min_value=0), label='Monthly Shading', validators=[<django.core.validators.MinLengthValidator object>, <django.core.validators.MaxLengthValidator object>])
  481.             CustomMountingSystem = CustomMountingSystemDataSerializer(allow_null=True, default={'ModuleTiltMax': 0, 'AxisRotationMin': 0, 'ModuleTiltMin': 0, 'AxisRotationMax': 0}, label='Custom Mounting System', required=False):
  482.                 ModuleTiltMin = FloatField(label='Minimum Module Tilt [degrees]', max_value=0, min_value=-180)
  483.                 ModuleTiltMax = FloatField(label='Maximum Module Tilt [degrees]', max_value=180, min_value=0)
  484.                 AxisRotationMin = FloatField(label='Minimum Axis Rotation [degrees]', max_value=0, min_value=-180)
  485.                 AxisRotationMax = FloatField(label='Maximum Axis Rotation [degrees]', max_value=180, min_value=0)
  486.             TrackerMisalignmentLoss = FloatField(label='Tracker Misalignment Loss', max_value=1, min_value=0)
  487.             SiteShadingLoss = FloatField(label='Site Shading Loss', max_value=1, min_value=0)
  488.             IsOverrideFlashRating = BooleanField(label='Override Flash Rating')
  489.             ModuleFlashRating = FloatField(allow_null=True, default=0, label='Module Flash Rating [W]', min_value=0, required=False)
  490.             IsOverrideLID = BooleanField(label='Override Module LID')
  491.             ModuleLID = FloatField(allow_null=True, default=0, label='Module LID', min_value=0, required=False)
  492.     Losses = LossesDataSerializer():
  493.         ConstantSoilingLoss = FloatField(allow_null=True, label='Constant Soiling Loss', max_value=1, min_value=0, required=False)
  494.         DynamicSoiling = DynamicSoilingDataSerializer(label='Dynamic Soiling', required=False):
  495.             SoilingRateMultiplier = FloatField(label='Soiling Rate Multiplier')
  496.             NumberOfWashes = IntegerField(label='Number Of Washes', min_value=0)
  497.             CalculateWashingDates = BooleanField(label='Calculate Washing Dates')
  498.             LastCleanedDate = DateField(label='Last Cleaned Date')
  499.             ManualWashingDates = CustomListField(child=DateField(), label='Manual Washing Dates', required=False, validators=[<django.core.validators.MinLengthValidator object>, <django.core.validators.MaxLengthValidator object>])
  500.         StandardLossesSchemeId = IntegerField(allow_null=True, label='Standard Losses Scheme ID', required=False)
  501.         CustomLossScheme = CustomLossSchemeData(label='Custom Loss Scheme', required=False):
  502.             DCCablingLoss = FloatField(label='DC Cabling Loss', max_value=1, min_value=0)
  503.             DCMismatchLoss = FloatField(label='DC Mismatch Loss', max_value=1, min_value=0)
  504.             TransformerDaytimeLoss = FloatField(label='Transformer Daytime Loss', max_value=1, min_value=0)
  505.             TransformerNighttimeLoss = FloatField(label='Transformer Nighttime Loss', max_value=1, min_value=0)
  506.             ACWiringLoss = FloatField(label='AC Wiring Loss', max_value=1, min_value=0)
  507.             ACAuxiliaryLoss = FloatField(label='AC Auxiliary Loss', max_value=1, min_value=0)
  508.             SystemAvailability = FloatField(label='System Availability', max_value=1, min_value=0)
  509.         CalculateSnowLoss = BooleanField(default=False, label='Calculate Snow Loss', required=False)
  510.         NumberOfSnowDays = IntegerField(label='Number of Snow Days', min_value=0, required=False)
  511. [DEBUG] 2016-10-08 06:01:47,267 (MainProcess) (MainThread)
  512. > is valid: True
  513. [DEBUG] 2016-10-08 06:01:47,268 (MainProcess) (MainThread)
  514. > errors:
  515.         {}
  516. [DEBUG] 2016-10-08 06:01:47,268 (MainProcess) (MainThread)
  517. > field: u'Elevation'
  518. [DEBUG] 2016-10-08 06:01:47,268 (MainProcess) (MainThread)
  519. > field: u'ArraySettingsType'
  520. [DEBUG] 2016-10-08 06:01:47,268 (MainProcess) (MainThread)
  521. > field: u'Losses'
  522. [DEBUG] 2016-10-08 06:01:47,268 (MainProcess) (MainThread)
  523. > class: <class 'simengapi_app.serializers.LossesData'>
  524. [DEBUG] 2016-10-08 06:01:47,268 (MainProcess) (MainThread)
  525. > field: u'DynamicSoiling'
  526. [DEBUG] 2016-10-08 06:01:47,268 (MainProcess) (MainThread)
  527. > class: <class 'simengapi_app.serializers.DynamicSoilingData'>
  528. [DEBUG] 2016-10-08 06:01:47,269 (MainProcess) (MainThread)
  529. > field: u'LastCleanedDate'
  530. [DEBUG] 2016-10-08 06:01:47,269 (MainProcess) (MainThread)
  531. > field: u'NumberOfWashes'
  532. [DEBUG] 2016-10-08 06:01:47,269 (MainProcess) (MainThread)
  533. > field: u'SoilingRateMultiplier'
  534. [DEBUG] 2016-10-08 06:01:47,269 (MainProcess) (MainThread)
  535. > field: u'ManualWashingDates'
  536. [DEBUG] 2016-10-08 06:01:47,269 (MainProcess) (MainThread)
  537. > field: u'CalculateWashingDates'
  538. [DEBUG] 2016-10-08 06:01:47,269 (MainProcess) (MainThread)
  539. > class attribute values:
  540.         <simengapi_app.serializers.DynamicSoilingData object at 0x4b20a90>
  541. [DEBUG] 2016-10-08 06:01:47,269 (MainProcess) (MainThread)
  542. > field: u'CustomLossScheme'
  543. [DEBUG] 2016-10-08 06:01:47,269 (MainProcess) (MainThread)
  544. > class: <class 'simengapi_app.serializers.CustomLossSchemeData'>
  545. [DEBUG] 2016-10-08 06:01:47,269 (MainProcess) (MainThread)
  546. > field: u'TransformerNighttimeLoss'
  547. [DEBUG] 2016-10-08 06:01:47,269 (MainProcess) (MainThread)
  548. > field: u'SystemAvailability'
  549. [DEBUG] 2016-10-08 06:01:47,270 (MainProcess) (MainThread)
  550. > field: u'DCCablingLoss'
  551. [DEBUG] 2016-10-08 06:01:47,270 (MainProcess) (MainThread)
  552. > field: u'DCMismatchLoss'
  553. [DEBUG] 2016-10-08 06:01:47,270 (MainProcess) (MainThread)
  554. > field: u'TransformerDaytimeLoss'
  555. [DEBUG] 2016-10-08 06:01:47,270 (MainProcess) (MainThread)
  556. > field: u'ACWiringLoss'
  557. [DEBUG] 2016-10-08 06:01:47,270 (MainProcess) (MainThread)
  558. > field: u'ACAuxiliaryLoss'
  559. [DEBUG] 2016-10-08 06:01:47,270 (MainProcess) (MainThread)
  560. > class attribute values:
  561.         <simengapi_app.serializers.CustomLossSchemeData object at 0x4b20250>
  562. [DEBUG] 2016-10-08 06:01:47,270 (MainProcess) (MainThread)
  563. > field: u'NumberOfSnowDays'
  564. [DEBUG] 2016-10-08 06:01:47,270 (MainProcess) (MainThread)
  565. > field: u'CalculateSnowLoss'
  566. [DEBUG] 2016-10-08 06:01:47,270 (MainProcess) (MainThread)
  567. > class attribute values:
  568.         <simengapi_app.serializers.LossesData object at 0x4b20a10>
  569. [DEBUG] 2016-10-08 06:01:47,270 (MainProcess) (MainThread)
  570. > field: u'Longitude'
  571. [DEBUG] 2016-10-08 06:01:47,271 (MainProcess) (MainThread)
  572. > field: u'GroundAlbedo'
  573. [DEBUG] 2016-10-08 06:01:47,271 (MainProcess) (MainThread)
  574. > field: u'Inverters'
  575. [DEBUG] 2016-10-08 06:01:47,271 (MainProcess) (MainThread)
  576. > nested class: <class 'simengapi_app.serializers.InverterData'>
  577. [DEBUG] 2016-10-08 06:01:47,271 (MainProcess) (MainThread)
  578. > field: u'Layouts'
  579. [DEBUG] 2016-10-08 06:01:47,271 (MainProcess) (MainThread)
  580. > nested class: <class 'simengapi_app.serializers.LayoutData'>
  581. [DEBUG] 2016-10-08 06:01:47,271 (MainProcess) (MainThread)
  582. > field: u'SiteShadingLoss'
  583. [DEBUG] 2016-10-08 06:01:47,271 (MainProcess) (MainThread)
  584. > field: u'HeightAboveGround'
  585. [DEBUG] 2016-10-08 06:01:47,271 (MainProcess) (MainThread)
  586. > field: u'ModuleCountPerString'
  587. [DEBUG] 2016-10-08 06:01:47,271 (MainProcess) (MainThread)
  588. > field: u'FieldLayout'
  589. [DEBUG] 2016-10-08 06:01:47,271 (MainProcess) (MainThread)
  590. > field: u'AxisTiltAngle'
  591. [DEBUG] 2016-10-08 06:01:47,272 (MainProcess) (MainThread)
  592. > field: u'IsOverrideLID'
  593. [DEBUG] 2016-10-08 06:01:47,272 (MainProcess) (MainThread)
  594. > field: u'CustomMountingSystem'
  595. [DEBUG] 2016-10-08 06:01:47,272 (MainProcess) (MainThread)
  596. > field: u'ModuleLID'
  597. [DEBUG] 2016-10-08 06:01:47,272 (MainProcess) (MainThread)
  598. > field: u'TrackerMisalignmentLoss'
  599. [DEBUG] 2016-10-08 06:01:47,272 (MainProcess) (MainThread)
  600. > field: u'IsSmartMount'
  601. [DEBUG] 2016-10-08 06:01:47,272 (MainProcess) (MainThread)
  602. > field: u'MonthlyShading'
  603. [DEBUG] 2016-10-08 06:01:47,272 (MainProcess) (MainThread)
  604. > field: u'MountingSurfaceSlope'
  605. [DEBUG] 2016-10-08 06:01:47,272 (MainProcess) (MainThread)
  606. > field: u'GCR'
  607. [DEBUG] 2016-10-08 06:01:47,272 (MainProcess) (MainThread)
  608. > class: <class 'simengapi_app.serializers.GCRData'>
  609. [DEBUG] 2016-10-08 06:01:47,272 (MainProcess) (MainThread)
  610. > field: u'GCRNS'
  611. [DEBUG] 2016-10-08 06:01:47,273 (MainProcess) (MainThread)
  612. > field: u'GCREW'
  613. [DEBUG] 2016-10-08 06:01:47,273 (MainProcess) (MainThread)
  614. > class attribute values:
  615.         <simengapi_app.serializers.GCRData object at 0x52b7b10>
  616. [DEBUG] 2016-10-08 06:01:47,273 (MainProcess) (MainThread)
  617. > field: u'ModuleOrientation'
  618. [DEBUG] 2016-10-08 06:01:47,273 (MainProcess) (MainThread)
  619. > field: u'UseBacktracking'
  620. [DEBUG] 2016-10-08 06:01:47,273 (MainProcess) (MainThread)
  621. > field: u'IsOverrideFlashRating'
  622. [DEBUG] 2016-10-08 06:01:47,273 (MainProcess) (MainThread)
  623. > field: u'ModuleFlashRating'
  624. [DEBUG] 2016-10-08 06:01:47,273 (MainProcess) (MainThread)
  625. > field: u'PVModuleId'
  626. [DEBUG] 2016-10-08 06:01:47,273 (MainProcess) (MainThread)
  627. > field: u'SystemAzimuth'
  628. [DEBUG] 2016-10-08 06:01:47,274 (MainProcess) (MainThread)
  629. > field: u'UseShadingCalculation'
  630. [DEBUG] 2016-10-08 06:01:47,274 (MainProcess) (MainThread)
  631. > field: u'GroundSlopeAzimuth'
  632. [DEBUG] 2016-10-08 06:01:47,274 (MainProcess) (MainThread)
  633. > field: u'ParallelStringCount'
  634. [DEBUG] 2016-10-08 06:01:47,274 (MainProcess) (MainThread)
  635. > field: u'MountingSystemId'
  636. [DEBUG] 2016-10-08 06:01:47,274 (MainProcess) (MainThread)
  637. > field: u'StandOff'
  638. [DEBUG] 2016-10-08 06:01:47,274 (MainProcess) (MainThread)
  639. > nested class attribute values:
  640.         [<simengapi_app.serializers.LayoutData object at 0x52b79d0>]
  641. [DEBUG] 2016-10-08 06:01:47,274 (MainProcess) (MainThread)
  642. > field: u'IsGCEInverter'
  643. [DEBUG] 2016-10-08 06:01:47,274 (MainProcess) (MainThread)
  644. > field: u'GCEInverter'
  645. [DEBUG] 2016-10-08 06:01:47,274 (MainProcess) (MainThread)
  646. > field: u'InverterCount'
  647. [DEBUG] 2016-10-08 06:01:47,274 (MainProcess) (MainThread)
  648. > field: u'StandardInverterId'
  649. [DEBUG] 2016-10-08 06:01:47,275 (MainProcess) (MainThread)
  650. > nested class attribute values:
  651.         [<simengapi_app.serializers.InverterData object at 0x4b20dd0>]
  652. [DEBUG] 2016-10-08 06:01:47,275 (MainProcess) (MainThread)
  653. > field: u'Latitude'
  654. [DEBUG] 2016-10-08 06:01:47,276 (MainProcess) (MainThread)
  655. > simulate data:
  656.         {'SnowDataHeaderId': None, 'Elevation': 14.0, 'ArraySettingsType': 'Urban', 'Losses': OrderedDict([('ConstantSoilingLoss', None), ('DynamicSoiling', OrderedDict([('SoilingRateMultiplier', 1.0), ('NumberOfWashes', 0), ('CalculateWashingDates', False), ('LastCleanedDate', '2015-01-01'), ('ManualWashingDates', ['2015-01-01'])])), ('StandardLossesSchemeId', None), ('CustomLossScheme', OrderedDict([('DCCablingLoss', 0.01), ('DCMismatchLoss', 0.008), ('TransformerDaytimeLoss', 0.0), ('TransformerNighttimeLoss', 0.0), ('ACWiringLoss', 0.002), ('ACAuxiliaryLoss', 0.0), ('SystemAvailability', 0.99)])), ('CalculateSnowLoss', False), ('NumberOfSnowDays', 0)]), 'GroundAlbedo': 0.2, 'RainfallDataHeaderId': None, 'Longitude': -122.358185, 'Inverters': [OrderedDict([('StandardInverterId', 899), ('IsGCEInverter', False), ('GCEInverter', None), ('InverterCount', 1), ('Layouts', [OrderedDict([('MountingSurfaceSlope', 25.0), ('SystemAzimuth', 0.0), ('GroundSlopeAzimuth', 0.0), ('HeightAboveGround', 4.0), ('GCR', OrderedDict([('GCREW', 1.0), ('GCRNS', 1.0)])), ('FieldLayout', 'Rows'), ('ModuleOrientation', 'Portrait'), ('ModuleCountPerString', 8), ('ParallelStringCount', 2), ('PVModuleId', 587), ('MountingSystemId', 1), ('AxisTiltAngle', 0.0), ('IsSmartMount', False), ('StandOff', 0.0762), ('UseBacktracking', False), ('UseShadingCalculation', False), ('MonthlyShading', [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), ('CustomMountingSystem', None), ('TrackerMisalignmentLoss', 0.0), ('SiteShadingLoss', 0.0), ('IsOverrideFlashRating', False), ('ModuleFlashRating', None), ('IsOverrideLID', False), ('ModuleLID', None)])])])], 'Latitude': 37.911211, 'WeatherDataHeaderId': None}
  657. [DEBUG] 2016-10-08 06:01:47,276 (MainProcess) (MainThread)
  658. > simulate obj:
  659.         <simengapi_app.serializers.SimulateData object at 0x52b7890>
  660. [DEBUG] 2016-10-08 06:01:47,276 (MainProcess) (MainThread)
  661. > serializer:
  662.         SimulateDataSerializer(<simengapi_app.serializers.SimulateData object>):
  663.     ArraySettingsType = ChoiceField(choices=['Urban', 'OpenSpace'], help_text='Type of array settings: Urban | Open Space', label='Array Settings Type')
  664.     Latitude = FloatField(help_text='[degrees]', max_value=90, min_value=-90, required=False)
  665.     Longitude = FloatField(help_text='[degrees]', max_value=180, min_value=-180, required=False)
  666.     Elevation = FloatField(help_text='[meters]')
  667.     GroundAlbedo = FloatField(label='Ground Albedo', max_value=1, min_value=0)
  668.     WeatherDataHeaderId = IntegerField(allow_null=True, label='Weather Data Header ID', min_value=1, required=False)
  669.     RainfallDataHeaderId = IntegerField(allow_null=True, label='Rainfall Data Header ID', min_value=1, required=False)
  670.     SnowDataHeaderId = IntegerField(allow_null=True, label='Snow Data Header ID', min_value=1, required=False)
  671.     Inverters = InverterDataSerializer(many=True, style={'base_template': 'textarea.html'}):
  672.         StandardInverterId = PrimaryKeyRelatedField(label='Standard Inverter ID', queryset=[<PVInverter: SunPower Corporation SB5000TL-US-22-240 [240] (2013)>], required=False)
  673.         IsGCEInverter = BooleanField(help_text='Specifies whether inverter is Generic Constant Efficiency (GCE) inverter', label='GCE Inverter')
  674.         GCEInverter = GCEInverterDataSerializer(allow_null=True, default={'Paco': 0, 'EfficiencyRating': 0}, label='GCE Inverter', required=False):
  675.             EfficiencyRating = FloatField(label='Efficiency Rating', max_value=1, min_value=0)
  676.             Paco = FloatField(help_text='Inverter AC capacity in watts', label='Pac0 [W]', min_value=0)
  677.         InverterCount = IntegerField(label='Inverter Count', min_value=0)
  678.         Layouts = LayoutDataSerializer(many=True, style={'base_template': 'textarea.html'}):
  679.             MountingSurfaceSlope = FloatField(label='Mounting Surface Slope [degrees]', max_value=90, min_value=-90)
  680.             SystemAzimuth = FloatField(help_text='Relative to south, east is positive, west is negative.', label='System Azimuth [degrees]', max_value=180, min_value=-180)
  681.             GroundSlopeAzimuth = FloatField(help_text='Relative to south, east is positive, west is negative.', label='Ground Slope Azimuth [degrees]', max_value=180, min_value=-180)
  682.             HeightAboveGround = FloatField(label='Height Above Ground [m]', min_value=0)
  683.             GCR = GCRDataSerializer(default={'GCRNS': 0, 'GCREW': 0}, label='GCR', required=False):
  684.                 GCREW = FloatField(help_text='Ground coverage ratio in East-West direction as fraction', label='GCREW', max_value=1, min_value=0)
  685.                 GCRNS = FloatField(help_text='Ground coverage ratio in North-South direction as fraction', label='GCRNS', max_value=1, min_value=0)
  686.             FieldLayout = ChoiceField(choices=['Soldier', 'Rows', 'Hexagonal'], default='Rows', label='Field Layout', required=False)
  687.             ModuleOrientation = ChoiceField(choices=['Landscape', 'Portrait'], default='Portrait', label='Module Orientation', required=False)
  688.             ModuleCountPerString = IntegerField(label='Module Count Per String', min_value=0)
  689.             ParallelStringCount = IntegerField(label='Parallel String Count', min_value=0)
  690.             PVModuleId = PrimaryKeyRelatedField(label='PV Module ID', queryset=[<PVModule: SunPower Corporation SPR-E20-327 (2013)>])
  691.             MountingSystemId = ChoiceField(choices=((1, 'Residential Retrofit'), (2, 'Residential SunTile'), (3, 'PowerGuard'), (4, 'T10'), (5, 'T5'), (6, 'T0 Tracker'), (7, 'T20 V2.1'), (8, 'T20 V2.2'), (9, 'T20 V2.3'), (10, 'Custom 2-Axis Tracker'), (11, 'Custom Stationary Fixed Tilt (Ground)'), (12, 'Custom Single-Axis Tracker'), (13, 'Custom Polar-Axis Tracker'), (14, 'Custom Stationary Fixed Tilt (Roof)'), (15, 'Oasis C1'), (16, 'ACPV v1'), (17, 'C7'), (18, 'ACPV v2'), (19, 'BIPV'), (20, 'S10'), (21, 'D10')), label='Mounting System ID')
  692.             AxisTiltAngle = FloatField(label='Axis Tilt Angle [degrees]', max_value=180, min_value=-180)
  693.             IsSmartMount = BooleanField(label='Smart Mount')
  694.             StandOff = FloatField(label='Standoff [m]')
  695.             UseBacktracking = BooleanField(label='Backtracking')
  696.             UseShadingCalculation = BooleanField(label='Calculate Shading')
  697.             MonthlyShading = CustomListField(child=FloatField(max_value=1, min_value=0), label='Monthly Shading', validators=[<django.core.validators.MinLengthValidator object>, <django.core.validators.MaxLengthValidator object>])
  698.             CustomMountingSystem = CustomMountingSystemDataSerializer(allow_null=True, default={'ModuleTiltMax': 0, 'AxisRotationMin': 0, 'ModuleTiltMin': 0, 'AxisRotationMax': 0}, label='Custom Mounting System', required=False):
  699.                 ModuleTiltMin = FloatField(label='Minimum Module Tilt [degrees]', max_value=0, min_value=-180)
  700.                 ModuleTiltMax = FloatField(label='Maximum Module Tilt [degrees]', max_value=180, min_value=0)
  701.                 AxisRotationMin = FloatField(label='Minimum Axis Rotation [degrees]', max_value=0, min_value=-180)
  702.                 AxisRotationMax = FloatField(label='Maximum Axis Rotation [degrees]', max_value=180, min_value=0)
  703.             TrackerMisalignmentLoss = FloatField(label='Tracker Misalignment Loss', max_value=1, min_value=0)
  704.             SiteShadingLoss = FloatField(label='Site Shading Loss', max_value=1, min_value=0)
  705.             IsOverrideFlashRating = BooleanField(label='Override Flash Rating')
  706.             ModuleFlashRating = FloatField(allow_null=True, default=0, label='Module Flash Rating [W]', min_value=0, required=False)
  707.             IsOverrideLID = BooleanField(label='Override Module LID')
  708.             ModuleLID = FloatField(allow_null=True, default=0, label='Module LID', min_value=0, required=False)
  709.     Losses = LossesDataSerializer():
  710.         ConstantSoilingLoss = FloatField(allow_null=True, label='Constant Soiling Loss', max_value=1, min_value=0, required=False)
  711.         DynamicSoiling = DynamicSoilingDataSerializer(label='Dynamic Soiling', required=False):
  712.             SoilingRateMultiplier = FloatField(label='Soiling Rate Multiplier')
  713.             NumberOfWashes = IntegerField(label='Number Of Washes', min_value=0)
  714.             CalculateWashingDates = BooleanField(label='Calculate Washing Dates')
  715.             LastCleanedDate = DateField(label='Last Cleaned Date')
  716.             ManualWashingDates = CustomListField(child=DateField(), label='Manual Washing Dates', required=False, validators=[<django.core.validators.MinLengthValidator object>, <django.core.validators.MaxLengthValidator object>])
  717.         StandardLossesSchemeId = IntegerField(allow_null=True, label='Standard Losses Scheme ID', required=False)
  718.         CustomLossScheme = CustomLossSchemeData(label='Custom Loss Scheme', required=False):
  719.             DCCablingLoss = FloatField(label='DC Cabling Loss', max_value=1, min_value=0)
  720.             DCMismatchLoss = FloatField(label='DC Mismatch Loss', max_value=1, min_value=0)
  721.             TransformerDaytimeLoss = FloatField(label='Transformer Daytime Loss', max_value=1, min_value=0)
  722.             TransformerNighttimeLoss = FloatField(label='Transformer Nighttime Loss', max_value=1, min_value=0)
  723.             ACWiringLoss = FloatField(label='AC Wiring Loss', max_value=1, min_value=0)
  724.             ACAuxiliaryLoss = FloatField(label='AC Auxiliary Loss', max_value=1, min_value=0)
  725.             SystemAvailability = FloatField(label='System Availability', max_value=1, min_value=0)
  726.         CalculateSnowLoss = BooleanField(default=False, label='Calculate Snow Loss', required=False)
  727.         NumberOfSnowDays = IntegerField(label='Number of Snow Days', min_value=0, required=False)
  728. [DEBUG] 2016-10-08 06:01:47,317 (MainProcess) (MainThread)
  729. > is valid: True
  730. [DEBUG] 2016-10-08 06:01:47,317 (MainProcess) (MainThread)
  731. > errors:
  732.         {}
  733. ok
  734.  
  735. ----------------------------------------------------------------------
  736. Ran 3 tests in 0.170s
  737.  
  738. OK
  739. Destroying test database for alias 'default' ('test_simengapi')...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement