def test_get_weather_data(self): config = ConfigController() apiTokenFromConfig = config.get_open_weather_token() testApiUrl = "https://api.openweathermap.org/data/2.5/weather?q=London,GB&APPID=" + apiTokenFromConfig data = Weather.get_weather_data(self, testApiUrl) assert 'weather' in data assert 'main' in data assert 'wind' in data assert 'clouds' in data assert 'sys' in data assert 'coord' in data
def __init__(self): """ init the variables """ # Greetings self.greeting = "Hey there Sifu Nam !" self.masterName = "Sifu Nam" # Datetime datetimeInfo = datetime.now() self.date = datetimeInfo.strftime("%A, %B %d %Y") self.time = datetimeInfo.strftime("%X") self.hour = int(datetimeInfo.hour) # Weather Info weatherController = Weather() self.weatherInfo = weatherController.get_weather_data() self.clothingInfo = weatherController.get_clothing_data() self.generalWeatherStatus = weatherController.get_weather_status() # Schedule Info self.scheduleController = Schedule() self.timeToLeave = self.scheduleController.hourBLH + " hours" + " and " + self.scheduleController.mBLH + " mins"
def main(): logger.info('Logging works!') weather = Weather() acceptable_weather_codes = config.get_weather_codes() logger.info('Started Sunmine application') current_state = MiningState.get_state() logger.info("Current state of the miner: " + current_state) # weather # sunset/rise logger.info("Getting sunrise/sunset data from the internet...") sun_api_url = SunTimes.build_sun_api_url(config) sun_data = SunTimes.get_sun_data_from_api(sun_api_url) sun_rise = sun_data.get("results").get("sunrise") sun_set = sun_data.get("results").get("sunset") go_time = False go_time = is_the_sun_up(sun_set, sun_rise) logger.info("Sun is up: " + str(go_time)) logger.info("Getting weather data from the internet...") weather_data = weather.get_weather_data(weather.built_url) weather_id = weather_data.get("weather")[0].get("id") go_weather = False if go_time: for w in acceptable_weather_codes: if w == str(weather_id): go_weather = True break else: go_weather = False logger.info("Weather conditions: " + weather_data.get("weather")[0].get("main") + " - " + str(weather_id)) logger.info("Weather is acceptable for mining: " + str(go_weather)) output = "" if go_time is True and go_weather is True: logger.info("Mining on") output = "Mining On" if is_miner_already_running(config.get_program_name()): logger.warning('Yes %s process was running, not starting.' % (config.get_program_name())) else: logger.warning('No process was running') os.startfile(config.get_program_location()) if "off" in current_state: logger.warning("Changing state, sending email.") send_mail.send(output) MiningState.set_state("on") else: logger.info("Mining Off") output = "Mining Off" if is_miner_already_running(config.get_program_name()): logger.warning('Yes %s process was running, killing.' % (config.get_program_name())) kill_process(config.get_program_name()) else: logger.warning( 'Mining process not running, do not need to kill process.') if "on" in current_state: logger.warning("Changing state, sending email.") send_mail.send(output) MiningState.set_state("off")