Best Python code snippet using Kiwi_python
test_solar.py
Source:test_solar.py
1#!/usr/bin/python32# Library for calculating location of the sun3# Copyright Brandon Stafford4#5# This file is part of Pysolar.6#7# Pysolar is free software; you can redistribute it and/or modify8# it under the terms of the GNU General Public License as published by9# the Free Software Foundation; either version 3 of the License, or10# (at your option) any later version.11#12# Pysolar is distributed in the hope that it will be useful,13# but WITHOUT ANY WARRANTY; without even the implied warranty of14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the15# GNU General Public License for more details.16#17# You should have received a copy of the GNU General Public License along18# with Pysolar. If not, see <http://www.gnu.org/licenses/>.19from pysolar import \20 solar, \21 constants, \22 solartime as stime, \23 elevation24import datetime25import unittest26class TestSolar(unittest.TestCase):27 def setUp(self):28 self.d = datetime.datetime(2003, 10, 17, 19, 30, 30, tzinfo = datetime.timezone.utc) # only works with Python 329 self.d += datetime.timedelta(seconds = stime.get_delta_t(self.d) - stime.tt_offset - stime.get_leap_seconds(self.d))30 # Reda & Andreas say that this time is in "Local Standard Time", which they31 # define as 7 hours behind UT (not UTC). Hence the adjustment to convert UT32 # to UTC.33 self.longitude = -105.178634 self.latitude = 39.74247635 self.pressure = 82000.0 # pascals36 self.elevation = 1830.14 # meters37 self.temperature = 11.0 + constants.celsius_offset # kelvin38 self.slope = 30.0 # degrees39 self.slope_orientation = -10.0 # degrees east from south40 self.jd = stime.get_julian_solar_day(self.d)41 self.jc = stime.get_julian_century(self.jd)42 self.jde = stime.get_julian_ephemeris_day(self.d)43 self.jce = stime.get_julian_ephemeris_century(self.jde)44 self.jme = stime.get_julian_ephemeris_millennium(self.jce)45 self.geocentric_longitude = solar.get_geocentric_longitude(self.jme)46 self.geocentric_latitude = solar.get_geocentric_latitude(self.jme)47 self.nutation = solar.get_nutation(self.jce)48 self.sun_earth_distance = solar.get_sun_earth_distance(self.jme)49 self.true_ecliptic_obliquity = solar.get_true_ecliptic_obliquity(self.jme, self.nutation)50 self.aberration_correction = solar.get_aberration_correction(self.sun_earth_distance)51 self.apparent_sun_longitude = solar.get_apparent_sun_longitude(self.geocentric_longitude, self.nutation, self.aberration_correction)52 self.apparent_sidereal_time = solar.get_apparent_sidereal_time(self.jd, self.jme, self.nutation)53 self.geocentric_sun_right_ascension = solar.get_geocentric_sun_right_ascension(self.apparent_sun_longitude, self.true_ecliptic_obliquity, self.geocentric_latitude)54 self.geocentric_sun_declination = solar.get_geocentric_sun_declination(self.apparent_sun_longitude, self.true_ecliptic_obliquity, self.geocentric_latitude)55 self.local_hour_angle = solar.get_local_hour_angle(318.5119, self.longitude, self.geocentric_sun_right_ascension) #self.apparent_sidereal_time only correct to 5 sig figs, so override56 self.equatorial_horizontal_parallax = solar.get_equatorial_horizontal_parallax(self.sun_earth_distance)57 self.projected_radial_distance = solar.get_projected_radial_distance(self.elevation, self.latitude)58 self.projected_axial_distance = solar.get_projected_axial_distance(self.elevation, self.latitude)59 self.topocentric_sun_right_ascension = solar.get_topocentric_sun_right_ascension(self.projected_radial_distance,60 self.equatorial_horizontal_parallax, self.local_hour_angle, self.apparent_sun_longitude, self.true_ecliptic_obliquity, self.geocentric_latitude)61 self.parallax_sun_right_ascension = solar.get_parallax_sun_right_ascension(self.projected_radial_distance, self.equatorial_horizontal_parallax, self.local_hour_angle, self.geocentric_sun_declination)62 self.topocentric_sun_declination = solar.get_topocentric_sun_declination(self.geocentric_sun_declination, self.projected_axial_distance, self.equatorial_horizontal_parallax, self.parallax_sun_right_ascension, self.local_hour_angle)63 self.topocentric_local_hour_angle = solar.get_topocentric_local_hour_angle(self.local_hour_angle, self.parallax_sun_right_ascension)64 self.topocentric_zenith_angle = solar.get_topocentric_zenith_angle(self.latitude, self.topocentric_sun_declination, self.topocentric_local_hour_angle, self.pressure, self.temperature)65 self.topocentric_azimuth_angle = solar.get_topocentric_azimuth_angle(self.topocentric_local_hour_angle, self.latitude, self.topocentric_sun_declination)66 self.incidence_angle = solar.get_incidence_angle(self.topocentric_zenith_angle, self.slope, self.slope_orientation, self.topocentric_azimuth_angle)67 self.pressure_with_elevation = elevation.get_pressure_with_elevation(1567.7)68 self.temperature_with_elevation = elevation.get_temperature_with_elevation(1567.7)69 def test_get_julian_solar_day(self):70 self.assertAlmostEqual(2452930.312847, self.jd, 6) # value from Reda and Andreas (2005)71 def test_get_julian_ephemeris_day(self):72 self.assertAlmostEqual(2452930.3136, self.jde, 4) # value not validated73 def test_get_julian_century(self):74 self.assertAlmostEqual(0.03792779869191517, self.jc, 12) # value not validated75 def test_get_julian_ephemeris_millennium(self):76 self.assertAlmostEqual(0.0037927819143886397, self.jme, 12) # value not validated77 def test_get_geocentric_longitude(self):78 # self.assertAlmostEqual(204.0182635175, self.geocentric_longitude, 10) # value from Reda and Andreas (2005)79 self.assertAlmostEqual(204.0182635175, self.geocentric_longitude, 4) # above fails with more accurate Julian Ephemeris correction80 def test_get_geocentric_latitude(self):81 # self.assertAlmostEqual(0.0001011219, self.geocentric_latitude, 9) # value from Reda and Andreas (2005)82 self.assertAlmostEqual(0.0001011219, self.geocentric_latitude, 8) # above fails with more accurate Julian Ephemeris correction83 def test_get_nutation(self):84 self.assertAlmostEqual(0.00166657, self.nutation['obliquity'], 8) # value from Reda and Andreas (2005)85 self.assertAlmostEqual(-0.00399840, self.nutation['longitude'], 8) # value from Reda and Andreas (2005)86 def test_get_sun_earth_distance(self):87 self.assertAlmostEqual(0.9965421031, self.sun_earth_distance, 6) # value from Reda and Andreas (2005)88 def test_get_true_ecliptic_obliquity(self):89 self.assertAlmostEqual(23.440465, self.true_ecliptic_obliquity, 6) # value from Reda and Andreas (2005)90 def test_get_aberration_correction(self):91 self.assertAlmostEqual(-0.005711359, self.aberration_correction, 9) # value not validated92 def test_get_apparent_sun_longitude(self):93 # self.assertAlmostEqual(204.0085537528, self.apparent_sun_longitude, 10) # value from Reda and Andreas (2005)94 self.assertAlmostEqual(204.0085537528, self.apparent_sun_longitude, 4) # above fails with more accurate Julian Ephemeris correction95 def test_get_apparent_sidereal_time(self):96 self.assertAlmostEqual(318.5119, self.apparent_sidereal_time, 2) # value derived from Reda and Andreas (2005)97 def test_get_geocentric_sun_right_ascension(self):98 self.assertAlmostEqual(202.22741, self.geocentric_sun_right_ascension, 4) # value from Reda and Andreas (2005)99 def test_get_geocentric_sun_declination(self):100 self.assertAlmostEqual(-9.31434, self.geocentric_sun_declination, 4) # value from Reda and Andreas (2005)101 def test_get_local_hour_angle(self):102 self.assertAlmostEqual(11.105900, self.local_hour_angle, 4) # value from Reda and Andreas (2005)103 def test_get_projected_radial_distance(self):104 self.assertAlmostEqual(0.7702006, self.projected_radial_distance, 6) # value not validated105 def test_get_topocentric_sun_right_ascension(self):106 self.assertAlmostEqual(202.22741, self.topocentric_sun_right_ascension, 3) # value from Reda and Andreas (2005)107 def test_get_parallax_sun_right_ascension(self):108 self.assertAlmostEqual(-0.0003659912761437859, self.parallax_sun_right_ascension, 12) # value not validated109 110 def test_get_topocentric_sun_declination(self):111 self.assertAlmostEqual(-9.316179, self.topocentric_sun_declination, 3) # value from Reda and Andreas (2005)112 def test_get_topocentric_local_hour_angle(self):113 self.assertAlmostEqual(11.10629, self.topocentric_local_hour_angle, 4) # value from Reda and Andreas (2005)114 def test_get_topocentric_zenith_angle(self):115 self.assertAlmostEqual(50.11162, self.topocentric_zenith_angle, 3) # value from Reda and Andreas (2005)116 def test_get_topocentric_azimuth_angle(self):117 # self.assertAlmostEqual(194.34024, self.topocentric_azimuth_angle, 5) # value from Reda and Andreas (2005)118 self.assertAlmostEqual(194.34024, self.topocentric_azimuth_angle, 4) # above fails with more accurate Julian Ephemeris correction119 def test_get_incidence_angle(self):120 self.assertAlmostEqual(25.18700, self.incidence_angle, 3) # value from Reda and Andreas (2005)121 def testPressureWithElevation(self):122 self.assertAlmostEqual(83855.90228, self.pressure_with_elevation, 4)123 def testTemperatureWithElevation(self):124 self.assertAlmostEqual(277.9600, self.temperature_with_elevation, 4)125class TestApi(unittest.TestCase):126 test_when = datetime.datetime(2016, 12, 19, 23, 0, 0, tzinfo=datetime.timezone.utc)127 def testGetPosition(self):128 az, al = solar.get_position(59.6365662,12.5350953, TestApi.test_when)129 self.assertAlmostEqual(az, 357.1431414)130 self.assertAlmostEqual(al, -53.7672217)131 az, al = solar.get_position(-43, 172, TestApi.test_when)132 self.assertAlmostEqual(az, 50.50035708)133 self.assertAlmostEqual(al, 63.0922036)134 # From Greenwich135 az, al = solar.get_position(51.4826, 0, TestApi.test_when)136 self.assertAlmostEqual(az, 333.04037976)137 self.assertAlmostEqual(al, -59.83724345)138 def testGetAltitude(self):139 al = solar.get_altitude(-43, 172, TestApi.test_when)140 self.assertAlmostEqual(al, 63.0922036)141 def testGetAzimuth(self):142 az = solar.get_azimuth(-43, 172, TestApi.test_when)143 self.assertAlmostEqual(az, 50.50035708)144 def testGetAltitudeFast(self):145 # location is in NZ, use relevant timezone146 day = datetime.datetime(147 2016, 12, 19, 0, 0,148 tzinfo=datetime.timezone(datetime.timedelta(hours=12)))149 for hour in range(7, 19):150 when = day + datetime.timedelta(hours=hour)151 al = solar.get_altitude_fast(-43, 172, when)152 al_expected = solar.get_altitude(-43, 172, when)153 self.assertAlmostEqual(al, al_expected, delta=1)154 def testGetAzimuthFast(self):155 day = datetime.datetime(156 2016, 12, 19, 0, 0,157 tzinfo=datetime.timezone(datetime.timedelta(hours=12)))158 for hour in range(7, 19):159 when = day + datetime.timedelta(hours=hour)160 az = solar.get_azimuth_fast(-43, 172, when)161 az_expected = solar.get_azimuth(-43, 172, when)162 self.assertAlmostEqual(az, az_expected, delta=1.5)163if __name__ == "__main__":...
test_integration.py
Source:test_integration.py
1# Copyright 2022 ABSA Group Limited2#3# Licensed under the Apache License, Version 2.0 (the "License");4# you may not use this file except in compliance with the License.5# You may obtain a copy of the License at6#7# http://www.apache.org/licenses/LICENSE-2.08#9# Unless required by applicable law or agreed to in writing, software10# distributed under the License is distributed on an "AS IS" BASIS,11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.12# See the License for the specific language governing permissions and13# limitations under the License.14import pytest15import tests.test_test_utils.test_when16from pramen_py.test_utils.when import Markers17class Klass1:18 def some_method(19 self,20 arg1: str,21 arg2: int,22 *,23 kwarg1: str,24 kwarg2: str,25 ) -> str:26 return "Not mocked"27 def some_method_with_defaults(28 self,29 arg1: str,30 arg2: int,31 *,32 kwarg1: str,33 kwarg2: str = "some default string",34 ) -> str:35 return "Not mocked"36 @classmethod37 def some_class_method(38 cls,39 arg1: str,40 arg2: int,41 *,42 kwarg1: str,43 kwarg2: str,44 ) -> str:45 return "Not mocked"46class Klass2:47 def some_method(48 self,49 arg1: str,50 arg2: int,51 *,52 kwarg1: str,53 kwarg2: str,54 ) -> str:55 return "Not mocked"56def test_should_properly_patch_calls(when):57 when(Klass1, "some_method").called_with(58 "a",59 Markers.any,60 kwarg1="b",61 kwarg2=Markers.any,62 ).then_return("Mocked")63 assert (64 Klass1().some_method(65 "a",66 1,67 kwarg1="b",68 kwarg2="c",69 )70 == "Mocked"71 )72 assert (73 Klass1().some_method(74 "not mocked param",75 1,76 kwarg1="b",77 kwarg2="c",78 )79 == "Not mocked"80 )81@pytest.mark.skip(82 reason=(83 "bug in unittest, "84 "see https://github.com/python/cpython/issues/67267"85 )86)87def test_should_work_with_classmethods(when):88 when(Klass1, "some_class_method").called_with(89 "a",90 Markers.any,91 kwarg1="b",92 kwarg2=Markers.any,93 ).then_return("Mocked")94 assert (95 Klass1().some_class_method(96 "a",97 1,98 kwarg1="b",99 kwarg2="c",100 )101 == "Mocked"102 )103 assert (104 Klass1.some_class_method(105 "not mocked param",106 1,107 kwarg1="b",108 kwarg2="c",109 )110 == "Not mocked"111 )112def test_should_work_with_normal_functions(when):113 when(tests.test_test_utils.test_when, "some_normal_function").called_with(114 "a",115 Markers.any,116 kwarg1="b",117 kwarg2=Markers.any,118 ).then_return("Mocked")119 assert (120 tests.test_test_utils.test_when.some_normal_function(121 "a",122 1,123 kwarg1="b",124 kwarg2="c",125 )126 == "Mocked"127 )128 assert (129 tests.test_test_utils.test_when.some_normal_function(130 "not mocked param",131 1,132 kwarg1="b",133 kwarg2="c",134 )135 == "Not mocked"136 )137def test_should_be_able_to_patch_multiple_calls(when):138 when(Klass1, "some_method").called_with(139 "a",140 Markers.any,141 kwarg1="b",142 kwarg2=Markers.any,143 ).then_return("Mocked first time")144 when(Klass1, "some_method").called_with(145 Markers.any,146 1,147 kwarg1=Markers.any,148 kwarg2="b",149 ).then_return("Mocked second time")150 assert (151 Klass1().some_method(152 "a",153 1,154 kwarg1="b",155 kwarg2="c",156 )157 == "Mocked first time"158 )159 assert (160 Klass1().some_method(161 "any",162 1,163 kwarg1="any too",164 kwarg2="b",165 )166 == "Mocked second time"167 )168 assert (169 Klass1().some_method(170 "not mocked param",171 1,172 kwarg1="b",173 kwarg2="c",174 )175 == "Not mocked"176 )177def test_should_be_able_to_patch_multiple_objects(when):178 when(Klass1, "some_method").called_with(179 "a",180 Markers.any,181 kwarg1="b",182 kwarg2=Markers.any,183 ).then_return("Mocked Klass1")184 when(Klass2, "some_method").called_with(185 "b",186 Markers.any,187 kwarg1="c",188 kwarg2=Markers.any,189 ).then_return("Mocked Klass2")190 assert (191 Klass1().some_method(192 "a",193 1,194 kwarg1="b",195 kwarg2="c",196 )197 == "Mocked Klass1"198 )199 assert (200 Klass1().some_method(201 "not mocked param",202 1,203 kwarg1="b",204 kwarg2="c",205 )206 == "Not mocked"207 )208 assert (209 Klass2().some_method(210 "b",211 1,212 kwarg1="c",213 kwarg2="any",214 )215 == "Mocked Klass2"216 )217 assert (218 Klass2().some_method(219 "not mocked param",220 1,221 kwarg1="b",222 kwarg2="c",223 )224 == "Not mocked"225 )226def test_should_work_with_default_params_in_functions(when):227 patched_klass = (228 when(Klass1, "some_method_with_defaults")229 .called_with(230 Markers.any,231 Markers.any,232 kwarg1=Markers.any,233 kwarg2="some default string",234 )235 .then_return("Mocked")236 )237 assert (238 Klass1().some_method_with_defaults(239 "a",240 1,241 kwarg1="b",242 )243 == "Mocked"244 )245 assert (246 Klass1().some_method(247 "not mocked param",248 1,249 kwarg1="b",250 kwarg2="c",251 )252 == "Not mocked"253 )...
test_declarative_when.py
Source:test_declarative_when.py
1import os2import bspump.declarative3import bspump.unittest4class TestDeclarativeWhen(bspump.unittest.TestCase):5 def setUp(self) -> None:6 super().setUp()7 self.Builder = bspump.declarative.ExpressionBuilder(self.App)8 def load(self, decl_fname):9 basedir = os.path.dirname(__file__)10 with open(os.path.join(basedir, decl_fname), 'r') as f:11 return self.Builder.parse(f.read())[0]12 def test_when_01_else(self):13 decl = self.load('./test_when.yaml')14 res = decl({}, {'key': -1})15 self.assertEqual(res, "Unknown")16 def test_when_01_exact(self):17 decl = self.load('./test_when.yaml')18 res = decl({}, {'key': 34})19 self.assertEqual(res, "Thirty four")20 def test_when_01_range(self):21 decl = self.load('./test_when.yaml')22 res = decl({}, {'key': 45})23 self.assertEqual(res, "fourty to fifty (exclusive)")24 def test_when_01_set(self):25 decl = self.load('./test_when.yaml')26 res = decl({}, {'key': 75})...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!