2014-09-17 11:28:43 -06:00
|
|
|
import random
|
2014-09-08 13:17:28 -06:00
|
|
|
from datetime import timedelta
|
2015-04-16 03:21:09 -06:00
|
|
|
|
|
|
|
import factory
|
2014-09-08 13:17:28 -06:00
|
|
|
from factory import fuzzy
|
2015-04-16 03:21:09 -06:00
|
|
|
from django.utils.timezone import now
|
2014-09-08 13:17:28 -06:00
|
|
|
|
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
|
2014-09-08 13:17:28 -06:00
|
|
|
|
|
|
|
|
|
|
|
class AntennaFactory(factory.django.DjangoModelFactory):
|
|
|
|
"""Antenna model factory."""
|
2014-09-11 09:28:17 -06:00
|
|
|
frequency = fuzzy.FuzzyFloat(200, 500)
|
2014-09-08 13:17:28 -06:00
|
|
|
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."""
|
2014-09-14 08:42:52 -06:00
|
|
|
owner = factory.SubFactory(UserFactory)
|
2014-09-08 13:17:28 -06:00
|
|
|
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)
|
2014-09-08 13:17:28 -06:00
|
|
|
lng = fuzzy.FuzzyFloat(-180, 180)
|
2014-12-03 18:59:06 -07:00
|
|
|
featured_date = fuzzy.FuzzyDateTime(now() - timedelta(days=10), now())
|
2015-05-06 02:53:48 -06:00
|
|
|
active = fuzzy.FuzzyChoice(choices=[True, False])
|
|
|
|
last_seen = fuzzy.FuzzyDateTime(now() - timedelta(days=10), now())
|
2014-09-08 13:17:28 -06:00
|
|
|
|
|
|
|
@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."""
|
2014-10-27 12:16:38 -06:00
|
|
|
norad_cat_id = fuzzy.FuzzyInteger(2000, 4000)
|
2014-09-08 13:17:28 -06:00
|
|
|
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),
|
2014-10-25 13:41:41 -06:00
|
|
|
now() + timedelta(days=3))
|
2014-09-08 13:17:28 -06:00
|
|
|
|
2014-09-14 08:42:52 -06:00
|
|
|
class Meta:
|
|
|
|
model = Satellite
|
2014-09-08 13:17:28 -06:00
|
|
|
|
2014-09-14 08:42:52 -06:00
|
|
|
|
|
|
|
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)
|
2014-09-14 08:42:52 -06:00
|
|
|
mode = fuzzy.FuzzyChoice(choices=MODE_CHOICES)
|
|
|
|
invert = fuzzy.FuzzyChoice(choices=[True, False])
|
|
|
|
baud = fuzzy.FuzzyInteger(4000, 22000, step=1000)
|
|
|
|
satellite = factory.SubFactory(SatelliteFactory)
|
2014-09-08 13:17:28 -06:00
|
|
|
|
|
|
|
class Meta:
|
2014-09-14 08:42:52 -06:00
|
|
|
model = Transponder
|
2014-09-08 13:17:28 -06:00
|
|
|
|
|
|
|
|
|
|
|
class ObservationFactory(factory.django.DjangoModelFactory):
|
|
|
|
"""Observation model factory."""
|
|
|
|
satellite = factory.SubFactory(SatelliteFactory)
|
|
|
|
author = factory.SubFactory(UserFactory)
|
2014-09-17 11:28:43 -06:00
|
|
|
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)
|
2014-09-08 13:17:28 -06:00
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = Observation
|