pyEDSM/edsm/test_systemApi.py

236 lines
9.5 KiB
Python
Raw Normal View History

import unittest
from . import exception
from .systemApi import Bodies
from .systemApi import Traffic
class BodiesTest(unittest.TestCase):
def test_getBodies_HD43193(self):
json = Bodies.getBodies("HD 43193")
# system data
self.assertEqual(85920, json['id'])
self.assertEqual("HD 43193", json['name'])
# body count
self.assertEqual(17, len(json['bodies']))
# star
star = json['bodies'][0]
self.assertEqual(219074, star['id'])
self.assertEqual("HD 43193 A", star['name'])
self.assertEqual("Star", star['type'])
self.assertEqual("B (Blue-White) Star", star['subType'])
self.assertEqual(0, star['distanceToArrival'])
self.assertTrue(star['isMainStar'])
self.assertTrue(star['isScoopable'])
self.assertEqual(760, star['age'])
self.assertEqual("V", star['luminosity'])
self.assertEqual(0.443283, star['absoluteMagnitude'])
self.assertEqual(14.5625, star['solarMasses'])
self.assertEqual(5.3612057397555715, star['solarRadius'])
self.assertEqual(30995, star['surfaceTemperature'])
self.assertEqual(277.5355324074074, star['orbitalPeriod'])
self.assertEqual(0.4615586345240675, star['semiMajorAxis'])
self.assertEqual(0.275417, star['orbitalEccentricity'])
self.assertEqual(73.390816, star['orbitalInclination'])
self.assertEqual(23.460678, star['argOfPeriapsis'])
self.assertEqual(2.2797341579861112, star['rotationalPeriod'])
self.assertFalse(star['rotationalPeriodTidallyLocked'])
self.assertEqual(None, star['axialTilt'])
# planet
planet = json['bodies'][15]
self.assertEqual(311417, planet['id'])
self.assertEqual("HD 43193 CD 7 a", planet['name'])
self.assertEqual("Planet", planet['type'])
self.assertEqual("Class IV gas giant", planet['subType'])
# self.assertEqual(17963, planet['distanceToArrival']) # this sadly varies due to orbiting …
self.assertFalse(planet['isLandable'])
self.assertEqual(11.175634423255477, planet['gravity'])
self.assertEqual(1574.405762, planet['earthMasses'])
self.assertEqual(75701.896, planet['radius'])
self.assertEqual(1021, planet['surfaceTemperature'])
self.assertEqual("No volcanism", planet['volcanismType'])
self.assertEqual("No atmosphere", planet['atmosphereType'])
self.assertEqual("Not terraformable", planet['terraformingState'])
self.assertEqual(55.31602430555556, planet['orbitalPeriod'])
self.assertEqual(0.11103302421536405, planet['semiMajorAxis'])
self.assertEqual(None, planet['orbitalEccentricity'])
self.assertEqual(28.739708, planet['orbitalInclination'])
self.assertEqual(248.851364, planet['argOfPeriapsis'])
self.assertEqual(57.64743634259259, planet['rotationalPeriod'])
self.assertFalse(planet['rotationalPeriodTidallyLocked'])
self.assertEqual(0.198277, planet['axialTilt'])
def test_getBodiesById_HD43193(self):
json = Bodies.getBodiesById(85920)
# system data
self.assertEqual(85920, json['id'])
self.assertEqual("HD 43193", json['name'])
# body count
self.assertEqual(17, len(json['bodies']))
# star
star = json['bodies'][0]
self.assertEqual(219074, star['id'])
self.assertEqual("HD 43193 A", star['name'])
self.assertEqual("Star", star['type'])
self.assertEqual("B (Blue-White) Star", star['subType'])
self.assertEqual(0, star['distanceToArrival'])
self.assertTrue(star['isMainStar'])
self.assertTrue(star['isScoopable'])
self.assertEqual(760, star['age'])
self.assertEqual("V", star['luminosity'])
self.assertEqual(0.443283, star['absoluteMagnitude'])
self.assertEqual(14.5625, star['solarMasses'])
self.assertEqual(5.3612057397555715, star['solarRadius'])
self.assertEqual(30995, star['surfaceTemperature'])
self.assertEqual(277.5355324074074, star['orbitalPeriod'])
self.assertEqual(0.4615586345240675, star['semiMajorAxis'])
self.assertEqual(0.275417, star['orbitalEccentricity'])
self.assertEqual(73.390816, star['orbitalInclination'])
self.assertEqual(23.460678, star['argOfPeriapsis'])
self.assertEqual(2.2797341579861112, star['rotationalPeriod'])
self.assertFalse(star['rotationalPeriodTidallyLocked'])
self.assertEqual(None, star['axialTilt'])
# planet
planet = json['bodies'][15]
self.assertEqual(311417, planet['id'])
self.assertEqual("HD 43193 CD 7 a", planet['name'])
self.assertEqual("Planet", planet['type'])
self.assertEqual("Class IV gas giant", planet['subType'])
# self.assertEqual(17963, planet['distanceToArrival']) # this sadly varies due to orbiting …
self.assertFalse(planet['isLandable'])
self.assertEqual(11.175634423255477, planet['gravity'])
self.assertEqual(1574.405762, planet['earthMasses'])
self.assertEqual(75701.896, planet['radius'])
self.assertEqual(1021, planet['surfaceTemperature'])
self.assertEqual("No volcanism", planet['volcanismType'])
self.assertEqual("No atmosphere", planet['atmosphereType'])
self.assertEqual("Not terraformable", planet['terraformingState'])
self.assertEqual(55.31602430555556, planet['orbitalPeriod'])
self.assertEqual(0.11103302421536405, planet['semiMajorAxis'])
self.assertEqual(None, planet['orbitalEccentricity'])
self.assertEqual(28.739708, planet['orbitalInclination'])
self.assertEqual(248.851364, planet['argOfPeriapsis'])
self.assertEqual(57.64743634259259, planet['rotationalPeriod'])
self.assertFalse(planet['rotationalPeriodTidallyLocked'])
self.assertEqual(0.198277, planet['axialTilt'])
def test_wonkySystemNames(self):
Bodies.getBodies("BD+49 1280")
# FIXXME: I remember finding a system with “[]” in the name, but cant
# remember … and the search function in the usual tools arent very helpful
# :)
class TrafficTest(unittest.TestCase):
def test_getTraffic_Sol(self):
json = Traffic.getTraffic('Sol')
self.assertIs(type(json), dict)
# system data
self.assertEqual(27, json['id'])
self.assertEqual(10477373803, json['id64'])
self.assertEqual('Sol', json['name'])
self.assertEqual('https://www.edsm.net/en/system/id/27/name/Sol', json['url'])
self.assertEqual('J. Calvert (Joshua)', json['discovery']['commander'])
self.assertEqual('2014-11-18 18:21:43', json['discovery']['date'])
# format
self.assertIn('breakdown', json)
self.assertIs(type(json['breakdown']), dict)
self.assertIn('traffic', json)
self.assertIn('total', json['traffic'])
self.assertIn('week', json['traffic'])
self.assertIn('day', json['traffic'])
self.assertIs(type(json['traffic']), dict)
self.assertIs(type(json['traffic']['total']), int)
self.assertIs(type(json['traffic']['week']), int)
self.assertIs(type(json['traffic']['day']), int)
def test_getTrafficById_Sol(self):
json = Traffic.getTrafficById(27)
self.assertIs(type(json), dict)
# system data
self.assertEqual(27, json['id'])
self.assertEqual(10477373803, json['id64'])
self.assertEqual('Sol', json['name'])
self.assertEqual('https://www.edsm.net/en/system/id/27/name/Sol', json['url'])
self.assertEqual('J. Calvert (Joshua)', json['discovery']['commander'])
self.assertEqual('2014-11-18 18:21:43', json['discovery']['date'])
# format
self.assertIn('breakdown', json)
self.assertIs(type(json['breakdown']), dict)
self.assertIn('traffic', json)
self.assertIn('total', json['traffic'])
self.assertIn('week', json['traffic'])
self.assertIn('day', json['traffic'])
self.assertIs(type(json['traffic']), dict)
self.assertIs(type(json['traffic']['total']), int)
self.assertIs(type(json['traffic']['week']), int)
self.assertIs(type(json['traffic']['day']), int)
def test_getTraffic_HD43193(self):
json = Traffic.getTraffic('HD 43193')
self.assertIs(type(json), dict)
# system data
self.assertEqual(85920, json['id'])
self.assertEqual(167244341, json['id64'])
self.assertEqual('HD 43193', json['name'])
self.assertEqual('https://www.edsm.net/en/system/id/85920/name/HD+43193', json['url'])
self.assertEqual('Virosh Lich', json['discovery']['commander'])
self.assertEqual('2015-02-11 19:20:59', json['discovery']['date'])
# format
self.assertIn('breakdown', json)
self.assertIs(type(json['breakdown']), dict)
self.assertIn('traffic', json)
self.assertIn('total', json['traffic'])
self.assertIn('week', json['traffic'])
self.assertIn('day', json['traffic'])
self.assertIs(type(json['traffic']), dict)
self.assertIs(type(json['traffic']['total']), int)
self.assertIs(type(json['traffic']['week']), int)
self.assertIs(type(json['traffic']['day']), int)
def test_getTrafficById_HD43193(self):
json = Traffic.getTrafficById(85920)
self.assertIs(type(json), dict)
# system data
self.assertEqual(85920, json['id'])
self.assertEqual(167244341, json['id64'])
self.assertEqual('HD 43193', json['name'])
self.assertEqual('https://www.edsm.net/en/system/id/85920/name/HD+43193', json['url'])
self.assertEqual('Virosh Lich', json['discovery']['commander'])
self.assertEqual('2015-02-11 19:20:59', json['discovery']['date'])
# format
self.assertIn('breakdown', json)
self.assertIs(type(json['breakdown']), dict)
self.assertIn('traffic', json)
self.assertIn('total', json['traffic'])
self.assertIn('week', json['traffic'])
self.assertIn('day', json['traffic'])
self.assertIs(type(json['traffic']), dict)
self.assertIs(type(json['traffic']['total']), int)
self.assertIs(type(json['traffic']['week']), int)
self.assertIs(type(json['traffic']['day']), int)