Mock, UnitTest, JSON

There was a problem creating unittest to make sure that the method I need works well. Running it with nodetests, although it did not give any coverage.

import unittest from mock import Mock, patch, MagicMock from django.conf import settings from hackathon.scripts.steam import * class SteamTests(unittest.TestCase): def setup(self): self.API_URL = 'http://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/' self.APIKEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxxx' self.userID = 'Marorin' self.steamnum = '76561197997115778' def testGetUserIDNum(self): '''Test for steam.py method''' # Pulling from setUp userID = self.userID API_URL = self.API_URL APIKEY = self.APIKEY # constructing the URL self.url = API_URL + '?' + APIKEY + '&' + userID with patch('hackathon.scripts.steam.steamIDpulling') as mock_steamIDPulling: # Mocking the return value of this method. mock_steamIDpulling = 76561197997115778 self.assertEqual(steamIDPulling(userID,APIKEY),mock_steamIDpulling) 

Way of pulling information:

  def steamIDPulling(SteamUN,key): #Pulls out and returns the steam id number for use in steam queries. steaminfo = {'key': key,'vanityurl': SteamUN} a = requests.get('api.steampowered.com/ISteamUser/ResolveVanityURL/v0001/';, params=steaminfo) k = json.loads(a.content) SteamID = k['response']['steamid'] return SteamID 
0
source share
1 answer
 # Mocking the return value of this method. mock_steamIDpulling = 76561197997115778 

Must be:

 # Mocking the return value of this method. mock_steamIDpulling.return_value = 76561197997115778 

However, the code does not make sense. If you are trying to check the return value of steamIDpulling , just do:

 def testGetUserIDNum(self): '''Test for steam.py method''' # Pulling from setUp userID = self.userID API_URL = self.API_URL APIKEY = self.APIKEY # constructing the URL self.url = API_URL + '?' + APIKEY + '&' + userID self.assertEqual(steamIDPulling(userID,APIKEY), 76561197997115778) 

Failure is necessary only if it is necessary to change the value inside the test method (unless you are testing the mock library). To mock the query library:

 def testGetUserIDNum(self): '''Test for steam.py method''' # Pulling from setUp userID = self.userID API_URL = self.API_URL APIKEY = self.APIKEY # constructing the URL self.url = API_URL + '?' + APIKEY + '&' + userID with patch("requests.get") as mock_requests_get: mock_requests_get.return_value = """{"response": {"streamid":76561197997115778}}""" self.assertEqual(steamIDPulling(userID,APIKEY), 76561197997115778) 
0
source

All Articles