1
0
Fork 0
satnogs-network/network/base/tests.py

91 lines
2.9 KiB
Python
Raw Normal View History

import random
from datetime import timedelta
import factory
from factory import fuzzy
from django.utils.timezone import now
2014-12-19 06:06:58 -07:00
from network.base.models import (ANTENNA_BANDS, ANTENNA_TYPES, MODE_CHOICES,
2015-04-15 07:49:11 -06:00
Antenna, Satellite, Station, Transponder, Observation)
2014-12-19 06:06:58 -07:00
from network.users.tests import UserFactory
class AntennaFactory(factory.django.DjangoModelFactory):
"""Antenna model factory."""
2014-09-11 09:28:17 -06:00
frequency = fuzzy.FuzzyFloat(200, 500)
band = fuzzy.FuzzyChoice(choices=ANTENNA_BANDS)
antenna_type = fuzzy.FuzzyChoice(choices=ANTENNA_TYPES)
class Meta:
model = Antenna
class StationFactory(factory.django.DjangoModelFactory):
"""Station model factory."""
owner = factory.SubFactory(UserFactory)
name = fuzzy.FuzzyText()
image = factory.django.ImageField()
2014-09-11 09:28:17 -06:00
alt = fuzzy.FuzzyInteger(0, 800)
lat = fuzzy.FuzzyFloat(-20, 70)
lng = fuzzy.FuzzyFloat(-180, 180)
2014-12-03 18:59:06 -07:00
featured_date = fuzzy.FuzzyDateTime(now() - timedelta(days=10), now())
2014-12-19 06:06:58 -07:00
online = fuzzy.FuzzyChoice(choices=[True, False])
@factory.post_generation
def antennas(self, create, extracted, **kwargs):
if not create:
return
if extracted:
for antenna in extracted:
self.antenna.add(antenna)
class Meta:
model = Station
class SatelliteFactory(factory.django.DjangoModelFactory):
"""Sattelite model factory."""
norad_cat_id = fuzzy.FuzzyInteger(2000, 4000)
name = fuzzy.FuzzyText()
2014-10-25 15:47:11 -06:00
tle0 = fuzzy.FuzzyText()
tle1 = fuzzy.FuzzyText()
tle2 = fuzzy.FuzzyText()
2014-10-24 05:15:31 -06:00
updated = fuzzy.FuzzyDateTime(now() - timedelta(days=3),
now() + timedelta(days=3))
class Meta:
model = Satellite
class TransponderFactory(factory.django.DjangoModelFactory):
"""Transponder model factory."""
description = fuzzy.FuzzyText()
alive = fuzzy.FuzzyChoice(choices=[True, False])
2014-10-27 09:47:32 -06:00
uplink_low = fuzzy.FuzzyInteger(200000000, 500000000, step=10000)
uplink_high = fuzzy.FuzzyInteger(200000000, 500000000, step=10000)
downlink_low = fuzzy.FuzzyInteger(200000000, 500000000, step=10000)
downlink_high = fuzzy.FuzzyInteger(200000000, 500000000, step=10000)
mode = fuzzy.FuzzyChoice(choices=MODE_CHOICES)
invert = fuzzy.FuzzyChoice(choices=[True, False])
baud = fuzzy.FuzzyInteger(4000, 22000, step=1000)
satellite = factory.SubFactory(SatelliteFactory)
class Meta:
model = Transponder
class ObservationFactory(factory.django.DjangoModelFactory):
"""Observation model factory."""
satellite = factory.SubFactory(SatelliteFactory)
author = factory.SubFactory(UserFactory)
start = fuzzy.FuzzyDateTime(now() - timedelta(days=3),
now() + timedelta(days=3))
end = factory.LazyAttribute(
lambda x: x.start + timedelta(hours=random.randint(1, 8))
)
2014-09-17 11:02:43 -06:00
transponder = factory.SubFactory(TransponderFactory)
class Meta:
model = Observation