From 0a8890153d9bd35292ffae79efabe5e322c6859f Mon Sep 17 00:00:00 2001 From: Tony Date: Wed, 10 Nov 2021 15:33:20 -0600 Subject: [PATCH 1/5] Started tests --- events/tests.py | 129 +++++++++-------------------------------------- players/tests.py | 32 +++++++++++- venues/tests.py | 41 ++++++++++++++- 3 files changed, 93 insertions(+), 109 deletions(-) diff --git a/events/tests.py b/events/tests.py index 4ed33df..d53b3b8 100644 --- a/events/tests.py +++ b/events/tests.py @@ -1,112 +1,31 @@ -from django.test import TestCase -from events.models import Player, Event, Availability, Team, Positioning -import datetime -import pytz -# Create your tests here. +from django.test import TestCase, Client +from django.test.utils import setup_test_environment +from django.urls import reverse +from .models import Event -class BenchcoachTestCase(TestCase): - def setUp(self): - for first_name, last_name, jersey_number in [ - ("Rush", "Valenzuela", 1), - ("Baby", "Triumphant", 2) - ]: - Player.objects.create(first_name=first_name, last_name=last_name, jersey_number=jersey_number) +FIXTURES = ['sample_events.yaml', 'sample_teams.yaml'] - for name in ["Firefighters", "Garages"]: - Team.objects.create(name=name) +class TestEventModel(TestCase): + fixtures = FIXTURES - for start, home_team_id, away_team_id in [ - (datetime.datetime(2020, 1, 2, 12, 0), 1, 2), # id = 1 - (datetime.datetime(2020, 1, 3, 12, 0), 2, 1), # id = 2 - (datetime.datetime(2020, 1, 4, 12, 0), 2, 1) # id = 3 - ]: - Event.objects.create(start=start, home_team_id=home_team_id, away_team_id=away_team_id) + def test_query_event(self): + """ + Return the desired event + """ + event = Event.objects.get(id=1) + # self.assertEqual(event.first_name, "Edric") + # self.assertEqual(event.last_name, "Tosser") + # self.assertEqual(event.jersey_number, 1) + # self.assertEqual(event.team.name, "Chicago Firefighters") - for event_id in [ - 1 - ]: - for player_id, available in [ - (1,"Yes"), - (2,"No") - ]: - Availability.objects.create(event_id=event_id, player_id=player_id, available=available) +class TestEventViews(TestCase): + fixtures = FIXTURES - for event_id in [ - 1 - ]: - for player_id, position in [ - (1, "C"), - (2, "1B") - ]: - Positioning.objects.create(event_id=event_id, player_id=player_id, position=position) + def test_event_list(self): + response = self.client.get(reverse('schedule')) + self.assertEqual(response.status_code, 200) - for event_id in [ - 2 - ]: - for player_id, available in [ - (1,"Yes"), - (2,"Yes") - ]: - Availability.objects.create(event_id=event_id, player_id=player_id, available=available) + def test_event_edit(self): + response = self.client.get(reverse('edit event', args=[2])) + self.assertEqual(response.status_code, 200) - for event_id in [ - 3 - ]: - for player_id, available in [ - (1,"No"), - (2,"No") - ]: - Availability.objects.create(event_id=event_id, player_id=player_id, available=available) - pass - - - def test_player(self): - """Test that player works""" - player_1 = Player.objects.get(first_name="Rush") - player_2 = Player.objects.get(first_name="Baby") - self.assertEqual(str(player_1), f"Valenzuela, Rush") - self.assertEqual(str(player_2), f"Triumphant, Baby") - pass - - def test_event(self): - event = Event.objects.get(pk=1) - self.assertEqual(event.start.year, 2020) - self.assertEqual(event.start.month, 1) - self.assertEqual(event.start.day, 2) - self.assertEqual(event.start.hour, 12) - self.assertEqual(event.start.minute, 0) - self.assertEqual(event.home_team.name, "Firefighters") - self.assertEqual(event.away_team.name, "Garages") - - def test_availability(self): - availability_1 = Availability.objects.get(event_id=1, player_id=1) - availability_2 = Availability.objects.get(event_id=1, player_id=2) - - self.assertEqual(availability_1.available, "Yes") - self.assertEqual(availability_2.available, "No") - pass - - def test_positioning(self): - positioning_1 = Positioning.objects.get(event_id=1, player_id=1) - positioning_2 = Positioning.objects.get(event_id=1, player_id=2) - # positing_1 - pass - - def test_combine_info(self): - event = Event.objects.get(pk=1) - event_id = 1 - player_query = Player.objects.all() - positioning_query = Positioning.objects.filter(event=event).select_related('player') - availability_query = Availability.objects.filter(event=event).select_related('player') - player_event_info = [] - - for player in player_query: - player_event_info.append( - { - "player":player, - "positioning":positioning_query.get(player_id=player.id), - "availability":availability_query.get(player_id=player.id) - } - ) - - pass diff --git a/players/tests.py b/players/tests.py index 7ce503c..df6dae8 100644 --- a/players/tests.py +++ b/players/tests.py @@ -1,3 +1,31 @@ -from django.test import TestCase +from django.test import TestCase, Client +from django.test.utils import setup_test_environment +from django.urls import reverse +from .models import Player + +FIXTURES = ['sample_players.yaml', 'sample_teams.yaml'] + +class TestPlayerModel(TestCase): + fixtures = FIXTURES + + def test_query_player(self): + """ + Return the desired player + """ + player = Player.objects.get(id=1) + self.assertEqual(player.first_name, "Edric") + self.assertEqual(player.last_name, "Tosser") + self.assertEqual(player.jersey_number, 1) + self.assertEqual(player.team.name, "Chicago Firefighters") + +class TestPlayerViews(TestCase): + fixtures = FIXTURES + + def test_player_list(self): + response = self.client.get(reverse('players list')) + self.assertEqual(response.status_code, 200) + + def test_player_edit(self): + response = self.client.get(reverse('edit player', args=[2])) + self.assertEqual(response.status_code, 200) -# Create your tests here. diff --git a/venues/tests.py b/venues/tests.py index 7ce503c..365d675 100644 --- a/venues/tests.py +++ b/venues/tests.py @@ -1,3 +1,40 @@ -from django.test import TestCase +from django.test import TestCase, Client +from django.test.utils import setup_test_environment +from django.urls import reverse +from .models import Venue -# Create your tests here. +FIXTURES = ['sample_venues.yaml'] + +class TestVenueModel(TestCase): + fixtures = FIXTURES + + def test_query_venue(self): + """ + Return the desired venue + """ + venue = Venue.objects.get(id=1) + self.assertEqual(venue.name, "Chesapeake Racetrack and Ballpark") + +class TestVenueViews(TestCase): + fixtures = FIXTURES + + def test_venue_list(self): + response = self.client.get(reverse('venues list')) + self.assertEqual(response.status_code, 200) + + def test_venue_edit(self): + response = self.client.get(reverse('edit venue', args=[1])) + self.assertEqual(response.status_code, 200) + + #create new venue + response = self.client.post(reverse('edit venue', args=[0]), data={'name': "A new venue"}) + self.assertEqual(201, response.status_code) + new_venue = Venue.objects.get(id=response.context['id']) + self.assertEqual('A new venue',new_venue.name, ) + + # modify venue + response = self.client.post(reverse('edit venue', args=[1]), data={'name': "A different venue name"}) + self.assertEqual(200, response.status_code) + self.assertEqual(1, response.context['id']) + modified_venue = Venue.objects.get(id=response.context['id']) + self.assertEqual('A different venue name', modified_venue.name) \ No newline at end of file From a2aece5346c0261f8467390fca155301b41f6487 Mon Sep 17 00:00:00 2001 From: Tony Date: Thu, 11 Nov 2021 16:04:43 -0600 Subject: [PATCH 2/5] Added some tests --- players/tests.py | 15 ++++++++++++++- venues/tests.py | 3 +++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/players/tests.py b/players/tests.py index df6dae8..1aaac93 100644 --- a/players/tests.py +++ b/players/tests.py @@ -26,6 +26,19 @@ class TestPlayerViews(TestCase): self.assertEqual(response.status_code, 200) def test_player_edit(self): - response = self.client.get(reverse('edit player', args=[2])) + response = self.client.get(reverse('edit player', args=[1])) self.assertEqual(response.status_code, 200) + # create new player + response = self.client.post(reverse('edit player', args=[0]), data={'name': "A new player"}) + self.assertEqual(201, response.status_code) + new_player = Player.objects.get(id=response.context['id']) + self.assertEqual('A new player', new_player.name) + + # modify player + response = self.client.post(reverse('edit player', args=[1]), data={'name': "A different player name"}) + self.assertEqual(200, response.status_code) + self.assertEqual(1, response.context['id']) + modified_player = Player.objects.get(id=response.context['id']) + self.assertEqual('A different player name', modified_player.name) + diff --git a/venues/tests.py b/venues/tests.py index 365d675..8aa4646 100644 --- a/venues/tests.py +++ b/venues/tests.py @@ -21,6 +21,9 @@ class TestVenueViews(TestCase): def test_venue_list(self): response = self.client.get(reverse('venues list')) self.assertEqual(response.status_code, 200) + self.assertIn((1, 'Chesapeake Racetrack and Ballpark'), response.context['items']) + self.assertIn((2, 'Tokyo Fitness Center'), response.context['items']) + self.assertIn((25, 'ILB Historical Preservation Site'), response.context['items']) def test_venue_edit(self): response = self.client.get(reverse('edit venue', args=[1])) From cd51a65b7aa48bb1bc26e7c959d06b4eee7e2638 Mon Sep 17 00:00:00 2001 From: Tony Date: Fri, 12 Nov 2021 10:48:05 -0600 Subject: [PATCH 3/5] reorganized fixtures (blaseball, 2021cmba). simpler now. --- events/fixtures/2021cmba.json | 412 ++ .../{sample_events.yaml => blaseball.yaml} | 0 lineups/fixtures/2021cmba.json | 3352 +++++++++++++++++ load_blaseball.sh | 7 + load_cmba.sh | 7 + players/fixtures/2021cmba.json | 227 ++ .../{sample_players.yaml => blaseball.yaml} | 0 teams/fixtures/2021cmba.json | 82 + .../{sample_teams.yaml => blaseball.yaml} | 0 venues/fixtures/2021cmba.json | 149 + .../{sample_venues.yaml => blaseball.yaml} | 0 11 files changed, 4236 insertions(+) create mode 100644 events/fixtures/2021cmba.json rename events/fixtures/{sample_events.yaml => blaseball.yaml} (100%) create mode 100644 lineups/fixtures/2021cmba.json create mode 100755 load_blaseball.sh create mode 100755 load_cmba.sh create mode 100644 players/fixtures/2021cmba.json rename players/fixtures/{sample_players.yaml => blaseball.yaml} (100%) create mode 100644 teams/fixtures/2021cmba.json rename teams/fixtures/{sample_teams.yaml => blaseball.yaml} (100%) create mode 100644 venues/fixtures/2021cmba.json rename venues/fixtures/{sample_venues.yaml => blaseball.yaml} (100%) diff --git a/events/fixtures/2021cmba.json b/events/fixtures/2021cmba.json new file mode 100644 index 0000000..76d16e5 --- /dev/null +++ b/events/fixtures/2021cmba.json @@ -0,0 +1,412 @@ +[ + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 1, + "away_team_id": null, + "home_team_id": null, + "start": "2021-03-11 17:30:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 1, + "away_team_id": null, + "home_team_id": null, + "start": "2021-03-21 13:00:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 18, + "away_team_id": 5, + "home_team_id": null, + "start": "2021-03-28 16:00:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 1, + "away_team_id": 5, + "home_team_id": 10, + "start": "2021-04-03 12:00:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 18, + "away_team_id": 5, + "home_team_id": 10, + "start": "2021-04-11 10:00:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 1, + "away_team_id": 5, + "home_team_id": 4, + "start": "2021-04-17 10:00:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 1, + "away_team_id": 5, + "home_team_id": 8, + "start": "2021-04-24 10:00:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 1, + "away_team_id": null, + "home_team_id": null, + "start": "2021-04-27 17:30:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 1, + "away_team_id": 1, + "home_team_id": 5, + "start": "2021-05-01 12:30:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 7, + "away_team_id": 7, + "home_team_id": 5, + "start": "2021-05-02 10:00:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 4, + "away_team_id": 5, + "home_team_id": 9, + "start": "2021-05-06 17:50:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 4, + "away_team_id": 8, + "home_team_id": 5, + "start": "2021-05-08 12:30:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 2, + "away_team_id": null, + "home_team_id": null, + "start": "2021-05-11 17:30:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 16, + "away_team_id": 5, + "home_team_id": 6, + "start": "2021-05-16 9:30:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 4, + "away_team_id": 5, + "home_team_id": 3, + "start": "2021-05-21 19:30:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 7, + "away_team_id": 5, + "home_team_id": 8, + "start": "2021-05-22 12:30:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 1, + "away_team_id": 5, + "home_team_id": 7, + "start": "2021-05-23 10:00:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 1, + "away_team_id": 5, + "home_team_id": 1, + "start": "2021-05-30 9:30:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 1, + "away_team_id": 2, + "home_team_id": 5, + "start": "2021-06-01 17:50:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 1, + "away_team_id": 9, + "home_team_id": 5, + "start": "2021-06-03 17:50:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 7, + "away_team_id": 5, + "home_team_id": 9, + "start": "2021-06-05 12:30:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 1, + "away_team_id": 7, + "home_team_id": 5, + "start": "2021-06-06 10:00:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 4, + "away_team_id": 5, + "home_team_id": 4, + "start": "2021-06-10 17:50:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 16, + "away_team_id": 1, + "home_team_id": 5, + "start": "2021-06-13 9:30:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 1, + "away_team_id": 3, + "home_team_id": 5, + "start": "2021-06-15 19:30:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 1, + "away_team_id": null, + "home_team_id": null, + "start": "2021-06-18 20:00:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 21, + "away_team_id": 10, + "home_team_id": 5, + "start": "2021-06-19 9:30:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 4, + "away_team_id": 5, + "home_team_id": 10, + "start": "2021-06-19 12:30:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 1, + "away_team_id": null, + "home_team_id": null, + "start": "2021-06-23 20:00:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 1, + "away_team_id": null, + "home_team_id": null, + "start": "2021-06-25 19:30:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 1, + "away_team_id": null, + "home_team_id": null, + "start": "2021-06-27 16:00:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 4, + "away_team_id": 5, + "home_team_id": 2, + "start": "2021-07-08 17:50:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 2, + "away_team_id": 4, + "home_team_id": 5, + "start": "2021-07-10 9:30:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 19, + "away_team_id": 4, + "home_team_id": 5, + "start": "2021-07-11 9:30:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 16, + "away_team_id": 10, + "home_team_id": 5, + "start": "2021-07-13 17:50:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 2, + "away_team_id": 5, + "home_team_id": 2, + "start": "2021-07-15 17:50:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 20, + "away_team_id": 5, + "home_team_id": 6, + "start": "2021-07-18 9:30:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 5, + "away_team_id": 8, + "home_team_id": 5, + "start": "2021-07-21 20:00:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 3, + "away_team_id": 5, + "home_team_id": 3, + "start": "2021-07-22 19:15:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 5, + "away_team_id": 6, + "home_team_id": 5, + "start": "2021-07-29 17:50:00" + } + }, + { + "model": "events.event", + "pk": null, + "fields": { + "venue_id": 5, + "away_team_id": 1, + "home_team_id": 5, + "start": "2021-07-31 9:30:00" + } + } +] \ No newline at end of file diff --git a/events/fixtures/sample_events.yaml b/events/fixtures/blaseball.yaml similarity index 100% rename from events/fixtures/sample_events.yaml rename to events/fixtures/blaseball.yaml diff --git a/lineups/fixtures/2021cmba.json b/lineups/fixtures/2021cmba.json new file mode 100644 index 0000000..d775cf2 --- /dev/null +++ b/lineups/fixtures/2021cmba.json @@ -0,0 +1,3352 @@ +[ + { + "model": "lineups.positioning", + "pk": 1, + "fields": { + "player": 18, + "event": 9, + "position": "LF", + "order": 1 + } + }, + { + "model": "lineups.positioning", + "pk": 2, + "fields": { + "player": 19, + "event": 9, + "position": "SS", + "order": 2 + } + }, + { + "model": "lineups.positioning", + "pk": 3, + "fields": { + "player": 22, + "event": 9, + "position": "3B", + "order": 3 + } + }, + { + "model": "lineups.positioning", + "pk": 4, + "fields": { + "player": 10, + "event": 9, + "position": "1B", + "order": 4 + } + }, + { + "model": "lineups.positioning", + "pk": 5, + "fields": { + "player": 15, + "event": 9, + "position": "2B", + "order": 5 + } + }, + { + "model": "lineups.positioning", + "pk": 6, + "fields": { + "player": 5, + "event": 9, + "position": "RF", + "order": 6 + } + }, + { + "model": "lineups.positioning", + "pk": 7, + "fields": { + "player": 2, + "event": 9, + "position": "P", + "order": 7 + } + }, + { + "model": "lineups.positioning", + "pk": 8, + "fields": { + "player": 20, + "event": 9, + "position": "CF", + "order": 8 + } + }, + { + "model": "lineups.positioning", + "pk": 9, + "fields": { + "player": 1, + "event": 9, + "position": "C", + "order": 9 + } + }, + { + "model": "lineups.positioning", + "pk": 10, + "fields": { + "player": 11, + "event": 9, + "position": "EH", + "order": 10 + } + }, + { + "model": "lineups.positioning", + "pk": 11, + "fields": { + "player": 11, + "event": 10, + "position": "P", + "order": 0 + } + }, + { + "model": "lineups.positioning", + "pk": 12, + "fields": { + "player": 18, + "event": 10, + "position": "CF", + "order": 1 + } + }, + { + "model": "lineups.positioning", + "pk": 13, + "fields": { + "player": 19, + "event": 10, + "position": "SS", + "order": 2 + } + }, + { + "model": "lineups.positioning", + "pk": 14, + "fields": { + "player": 22, + "event": 10, + "position": "3B", + "order": 3 + } + }, + { + "model": "lineups.positioning", + "pk": 15, + "fields": { + "player": 2, + "event": 10, + "position": "EH", + "order": 4 + } + }, + { + "model": "lineups.positioning", + "pk": 16, + "fields": { + "player": 8, + "event": 10, + "position": "1B", + "order": 5 + } + }, + { + "model": "lineups.positioning", + "pk": 17, + "fields": { + "player": 5, + "event": 10, + "position": "LF", + "order": 6 + } + }, + { + "model": "lineups.positioning", + "pk": 18, + "fields": { + "player": 10, + "event": 10, + "position": "DH", + "order": 7 + } + }, + { + "model": "lineups.positioning", + "pk": 19, + "fields": { + "player": 15, + "event": 10, + "position": "EH", + "order": 8 + } + }, + { + "model": "lineups.positioning", + "pk": 20, + "fields": { + "player": 14, + "event": 10, + "position": "2B", + "order": 9 + } + }, + { + "model": "lineups.positioning", + "pk": 21, + "fields": { + "player": 1, + "event": 10, + "position": "C", + "order": 10 + } + }, + { + "model": "lineups.positioning", + "pk": 22, + "fields": { + "player": 4, + "event": 10, + "position": "RF", + "order": 11 + } + }, + { + "model": "lineups.positioning", + "pk": 23, + "fields": { + "player": 7, + "event": 11, + "position": "P", + "order": 0 + } + }, + { + "model": "lineups.positioning", + "pk": 24, + "fields": { + "player": 18, + "event": 11, + "position": "RF", + "order": 1 + } + }, + { + "model": "lineups.positioning", + "pk": 25, + "fields": { + "player": 16, + "event": 11, + "position": "CF", + "order": 2 + } + }, + { + "model": "lineups.positioning", + "pk": 26, + "fields": { + "player": 22, + "event": 11, + "position": "3B", + "order": 3 + } + }, + { + "model": "lineups.positioning", + "pk": 27, + "fields": { + "player": 2, + "event": 11, + "position": "LF", + "order": 4 + } + }, + { + "model": "lineups.positioning", + "pk": 28, + "fields": { + "player": 8, + "event": 11, + "position": "1B", + "order": 5 + } + }, + { + "model": "lineups.positioning", + "pk": 29, + "fields": { + "player": 15, + "event": 11, + "position": "SS", + "order": 6 + } + }, + { + "model": "lineups.positioning", + "pk": 30, + "fields": { + "player": 13, + "event": 11, + "position": "2B", + "order": 7 + } + }, + { + "model": "lineups.positioning", + "pk": 31, + "fields": { + "player": 5, + "event": 11, + "position": "EH", + "order": 8 + } + }, + { + "model": "lineups.positioning", + "pk": 32, + "fields": { + "player": 1, + "event": 11, + "position": "C", + "order": 9 + } + }, + { + "model": "lineups.positioning", + "pk": 33, + "fields": { + "player": 4, + "event": 11, + "position": "DH", + "order": 10 + } + }, + { + "model": "lineups.positioning", + "pk": 34, + "fields": { + "player": 11, + "event": 12, + "position": "P", + "order": 0 + } + }, + { + "model": "lineups.positioning", + "pk": 35, + "fields": { + "player": 18, + "event": 12, + "position": "EH", + "order": 1 + } + }, + { + "model": "lineups.positioning", + "pk": 36, + "fields": { + "player": 19, + "event": 12, + "position": "SS", + "order": 2 + } + }, + { + "model": "lineups.positioning", + "pk": 37, + "fields": { + "player": 22, + "event": 12, + "position": "3B", + "order": 3 + } + }, + { + "model": "lineups.positioning", + "pk": 38, + "fields": { + "player": 10, + "event": 12, + "position": "1B", + "order": 4 + } + }, + { + "model": "lineups.positioning", + "pk": 39, + "fields": { + "player": 2, + "event": 12, + "position": "EH", + "order": 5 + } + }, + { + "model": "lineups.positioning", + "pk": 40, + "fields": { + "player": 5, + "event": 12, + "position": "LF", + "order": 6 + } + }, + { + "model": "lineups.positioning", + "pk": 41, + "fields": { + "player": 20, + "event": 12, + "position": "CF", + "order": 7 + } + }, + { + "model": "lineups.positioning", + "pk": 42, + "fields": { + "player": 3, + "event": 12, + "position": "2B", + "order": 8 + } + }, + { + "model": "lineups.positioning", + "pk": 43, + "fields": { + "player": 8, + "event": 12, + "position": "DH", + "order": 9 + } + }, + { + "model": "lineups.positioning", + "pk": 44, + "fields": { + "player": 1, + "event": 12, + "position": "C", + "order": 10 + } + }, + { + "model": "lineups.positioning", + "pk": 45, + "fields": { + "player": 4, + "event": 12, + "position": "RF", + "order": 11 + } + }, + { + "model": "lineups.positioning", + "pk": 46, + "fields": { + "player": 24, + "event": 14, + "position": "P", + "order": 0 + } + }, + { + "model": "lineups.positioning", + "pk": 47, + "fields": { + "player": 18, + "event": 14, + "position": "2B", + "order": 1 + } + }, + { + "model": "lineups.positioning", + "pk": 48, + "fields": { + "player": 6, + "event": 14, + "position": "DH", + "order": 2 + } + }, + { + "model": "lineups.positioning", + "pk": 49, + "fields": { + "player": 19, + "event": 14, + "position": "SS", + "order": 3 + } + }, + { + "model": "lineups.positioning", + "pk": 50, + "fields": { + "player": 22, + "event": 14, + "position": "3B", + "order": 4 + } + }, + { + "model": "lineups.positioning", + "pk": 51, + "fields": { + "player": 2, + "event": 14, + "position": "LF", + "order": 5 + } + }, + { + "model": "lineups.positioning", + "pk": 52, + "fields": { + "player": 13, + "event": 14, + "position": "RF", + "order": 6 + } + }, + { + "model": "lineups.positioning", + "pk": 53, + "fields": { + "player": 8, + "event": 14, + "position": "1B", + "order": 7 + } + }, + { + "model": "lineups.positioning", + "pk": 54, + "fields": { + "player": 20, + "event": 14, + "position": "CF", + "order": 8 + } + }, + { + "model": "lineups.positioning", + "pk": 55, + "fields": { + "player": 9, + "event": 14, + "position": "EH", + "order": 9 + } + }, + { + "model": "lineups.positioning", + "pk": 56, + "fields": { + "player": 1, + "event": 14, + "position": "C", + "order": 10 + } + }, + { + "model": "lineups.positioning", + "pk": 57, + "fields": { + "player": 11, + "event": 14, + "position": "EH", + "order": 11 + } + }, + { + "model": "lineups.positioning", + "pk": 58, + "fields": { + "player": 7, + "event": 15, + "position": "P", + "order": 0 + } + }, + { + "model": "lineups.positioning", + "pk": 59, + "fields": { + "player": 18, + "event": 15, + "position": "SS", + "order": 1 + } + }, + { + "model": "lineups.positioning", + "pk": 60, + "fields": { + "player": 19, + "event": 15, + "position": "EH", + "order": 2 + } + }, + { + "model": "lineups.positioning", + "pk": 61, + "fields": { + "player": 22, + "event": 15, + "position": "3B", + "order": 3 + } + }, + { + "model": "lineups.positioning", + "pk": 62, + "fields": { + "player": 6, + "event": 15, + "position": "DH", + "order": 4 + } + }, + { + "model": "lineups.positioning", + "pk": 63, + "fields": { + "player": 10, + "event": 15, + "position": "1B", + "order": 5 + } + }, + { + "model": "lineups.positioning", + "pk": 64, + "fields": { + "player": 2, + "event": 15, + "position": "LF", + "order": 6 + } + }, + { + "model": "lineups.positioning", + "pk": 65, + "fields": { + "player": 1, + "event": 15, + "position": "C", + "order": 7 + } + }, + { + "model": "lineups.positioning", + "pk": 66, + "fields": { + "player": 20, + "event": 15, + "position": "CF", + "order": 8 + } + }, + { + "model": "lineups.positioning", + "pk": 67, + "fields": { + "player": 15, + "event": 15, + "position": "RF", + "order": 9 + } + }, + { + "model": "lineups.positioning", + "pk": 68, + "fields": { + "player": 12, + "event": 15, + "position": "2B", + "order": 10 + } + }, + { + "model": "lineups.positioning", + "pk": 69, + "fields": { + "player": 14, + "event": 15, + "position": "EH", + "order": 11 + } + }, + { + "model": "lineups.positioning", + "pk": 70, + "fields": { + "player": 11, + "event": 16, + "position": "P", + "order": 0 + } + }, + { + "model": "lineups.positioning", + "pk": 71, + "fields": { + "player": 16, + "event": 16, + "position": "CF", + "order": 1 + } + }, + { + "model": "lineups.positioning", + "pk": 72, + "fields": { + "player": 18, + "event": 16, + "position": "C", + "order": 2 + } + }, + { + "model": "lineups.positioning", + "pk": 73, + "fields": { + "player": 19, + "event": 16, + "position": "SS", + "order": 3 + } + }, + { + "model": "lineups.positioning", + "pk": 74, + "fields": { + "player": 22, + "event": 16, + "position": "EH", + "order": 4 + } + }, + { + "model": "lineups.positioning", + "pk": 75, + "fields": { + "player": 10, + "event": 16, + "position": "EH", + "order": 5 + } + }, + { + "model": "lineups.positioning", + "pk": 76, + "fields": { + "player": 13, + "event": 16, + "position": "3B", + "order": 6 + } + }, + { + "model": "lineups.positioning", + "pk": 77, + "fields": { + "player": 5, + "event": 16, + "position": "LF", + "order": 7 + } + }, + { + "model": "lineups.positioning", + "pk": 78, + "fields": { + "player": 12, + "event": 16, + "position": "DH", + "order": 8 + } + }, + { + "model": "lineups.positioning", + "pk": 79, + "fields": { + "player": 9, + "event": 16, + "position": "2B", + "order": 9 + } + }, + { + "model": "lineups.positioning", + "pk": 80, + "fields": { + "player": 17, + "event": 16, + "position": "RF", + "order": 10 + } + }, + { + "model": "lineups.positioning", + "pk": 81, + "fields": { + "player": 24, + "event": 16, + "position": "1B", + "order": 11 + } + }, + { + "model": "lineups.positioning", + "pk": 82, + "fields": { + "player": 2, + "event": 17, + "position": "P", + "order": 0 + } + }, + { + "model": "lineups.positioning", + "pk": 83, + "fields": { + "player": 18, + "event": 17, + "position": "3B", + "order": 1 + } + }, + { + "model": "lineups.positioning", + "pk": 84, + "fields": { + "player": 13, + "event": 17, + "position": "SS", + "order": 2 + } + }, + { + "model": "lineups.positioning", + "pk": 85, + "fields": { + "player": 22, + "event": 17, + "position": "EH", + "order": 3 + } + }, + { + "model": "lineups.positioning", + "pk": 86, + "fields": { + "player": 6, + "event": 17, + "position": "CF", + "order": 4 + } + }, + { + "model": "lineups.positioning", + "pk": 87, + "fields": { + "player": 10, + "event": 17, + "position": "EH", + "order": 5 + } + }, + { + "model": "lineups.positioning", + "pk": 88, + "fields": { + "player": 14, + "event": 17, + "position": "1B", + "order": 6 + } + }, + { + "model": "lineups.positioning", + "pk": 89, + "fields": { + "player": 1, + "event": 17, + "position": "C", + "order": 7 + } + }, + { + "model": "lineups.positioning", + "pk": 90, + "fields": { + "player": 5, + "event": 17, + "position": "LF", + "order": 8 + } + }, + { + "model": "lineups.positioning", + "pk": 91, + "fields": { + "player": 3, + "event": 17, + "position": "2B", + "order": 9 + } + }, + { + "model": "lineups.positioning", + "pk": 92, + "fields": { + "player": 11, + "event": 17, + "position": "DH", + "order": 10 + } + }, + { + "model": "lineups.positioning", + "pk": 93, + "fields": { + "player": 4, + "event": 17, + "position": "RF", + "order": 11 + } + }, + { + "model": "lineups.positioning", + "pk": 94, + "fields": { + "player": 24, + "event": 18, + "position": "P", + "order": 0 + } + }, + { + "model": "lineups.positioning", + "pk": 95, + "fields": { + "player": 15, + "event": 18, + "position": "3B", + "order": 1 + } + }, + { + "model": "lineups.positioning", + "pk": 96, + "fields": { + "player": 2, + "event": 18, + "position": "RF", + "order": 2 + } + }, + { + "model": "lineups.positioning", + "pk": 97, + "fields": { + "player": 19, + "event": 18, + "position": "SS", + "order": 3 + } + }, + { + "model": "lineups.positioning", + "pk": 98, + "fields": { + "player": 10, + "event": 18, + "position": "1B", + "order": 4 + } + }, + { + "model": "lineups.positioning", + "pk": 99, + "fields": { + "player": 18, + "event": 18, + "position": "2B", + "order": 5 + } + }, + { + "model": "lineups.positioning", + "pk": 100, + "fields": { + "player": 20, + "event": 18, + "position": "CF", + "order": 6 + } + }, + { + "model": "lineups.positioning", + "pk": 101, + "fields": { + "player": 6, + "event": 18, + "position": "LF", + "order": 7 + } + }, + { + "model": "lineups.positioning", + "pk": 102, + "fields": { + "player": 1, + "event": 18, + "position": "C", + "order": 8 + } + }, + { + "model": "lineups.positioning", + "pk": 103, + "fields": { + "player": 5, + "event": 18, + "position": "EH", + "order": 9 + } + }, + { + "model": "lineups.positioning", + "pk": 104, + "fields": { + "player": 7, + "event": 18, + "position": "EH", + "order": 10 + } + }, + { + "model": "lineups.positioning", + "pk": 105, + "fields": { + "player": 14, + "event": 18, + "position": "DH", + "order": 11 + } + }, + { + "model": "lineups.positioning", + "pk": 106, + "fields": { + "player": 7, + "event": 19, + "position": "P", + "order": 0 + } + }, + { + "model": "lineups.positioning", + "pk": 107, + "fields": { + "player": 13, + "event": 19, + "position": "LF", + "order": 1 + } + }, + { + "model": "lineups.positioning", + "pk": 108, + "fields": { + "player": 2, + "event": 19, + "position": "C", + "order": 2 + } + }, + { + "model": "lineups.positioning", + "pk": 109, + "fields": { + "player": 6, + "event": 19, + "position": "DH", + "order": 3 + } + }, + { + "model": "lineups.positioning", + "pk": 110, + "fields": { + "player": 10, + "event": 19, + "position": "1B", + "order": 4 + } + }, + { + "model": "lineups.positioning", + "pk": 111, + "fields": { + "player": 5, + "event": 19, + "position": "CF", + "order": 5 + } + }, + { + "model": "lineups.positioning", + "pk": 112, + "fields": { + "player": 18, + "event": 19, + "position": "3B", + "order": 6 + } + }, + { + "model": "lineups.positioning", + "pk": 113, + "fields": { + "player": 22, + "event": 19, + "position": "SS", + "order": 7 + } + }, + { + "model": "lineups.positioning", + "pk": 114, + "fields": { + "player": 15, + "event": 19, + "position": "EH", + "order": 8 + } + }, + { + "model": "lineups.positioning", + "pk": 115, + "fields": { + "player": 9, + "event": 19, + "position": "EH", + "order": 9 + } + }, + { + "model": "lineups.positioning", + "pk": 116, + "fields": { + "player": 17, + "event": 19, + "position": "RF", + "order": 10 + } + }, + { + "model": "lineups.positioning", + "pk": 117, + "fields": { + "player": 23, + "event": 19, + "position": "2B", + "order": 11 + } + }, + { + "model": "lineups.positioning", + "pk": 118, + "fields": { + "player": 2, + "event": 20, + "position": "P", + "order": 5 + } + }, + { + "model": "lineups.positioning", + "pk": 119, + "fields": { + "player": 19, + "event": 20, + "position": "SS", + "order": 1 + } + }, + { + "model": "lineups.positioning", + "pk": 120, + "fields": { + "player": 22, + "event": 20, + "position": "3B", + "order": 2 + } + }, + { + "model": "lineups.positioning", + "pk": 121, + "fields": { + "player": 5, + "event": 20, + "position": "RF", + "order": 3 + } + }, + { + "model": "lineups.positioning", + "pk": 122, + "fields": { + "player": 18, + "event": 20, + "position": "EH", + "order": 4 + } + }, + { + "model": "lineups.positioning", + "pk": 123, + "fields": { + "player": 1, + "event": 20, + "position": "C", + "order": 6 + } + }, + { + "model": "lineups.positioning", + "pk": 124, + "fields": { + "player": 6, + "event": 20, + "position": "CF", + "order": 7 + } + }, + { + "model": "lineups.positioning", + "pk": 125, + "fields": { + "player": 8, + "event": 20, + "position": "1B", + "order": 8 + } + }, + { + "model": "lineups.positioning", + "pk": 126, + "fields": { + "player": 9, + "event": 20, + "position": "2B", + "order": 9 + } + }, + { + "model": "lineups.positioning", + "pk": 127, + "fields": { + "player": 4, + "event": 20, + "position": "EH", + "order": 10 + } + }, + { + "model": "lineups.positioning", + "pk": 128, + "fields": { + "player": 24, + "event": 20, + "position": "LF", + "order": 11 + } + }, + { + "model": "lineups.positioning", + "pk": 129, + "fields": { + "player": 11, + "event": 21, + "position": "P", + "order": 0 + } + }, + { + "model": "lineups.positioning", + "pk": 130, + "fields": { + "player": 2, + "event": 21, + "position": "EH", + "order": 1 + } + }, + { + "model": "lineups.positioning", + "pk": 131, + "fields": { + "player": 22, + "event": 21, + "position": "DH", + "order": 2 + } + }, + { + "model": "lineups.positioning", + "pk": 132, + "fields": { + "player": 18, + "event": 21, + "position": "SS", + "order": 3 + } + }, + { + "model": "lineups.positioning", + "pk": 133, + "fields": { + "player": 15, + "event": 21, + "position": "3B", + "order": 4 + } + }, + { + "model": "lineups.positioning", + "pk": 134, + "fields": { + "player": 10, + "event": 21, + "position": "1B", + "order": 5 + } + }, + { + "model": "lineups.positioning", + "pk": 135, + "fields": { + "player": 5, + "event": 21, + "position": "LF", + "order": 6 + } + }, + { + "model": "lineups.positioning", + "pk": 136, + "fields": { + "player": 9, + "event": 21, + "position": "2B", + "order": 7 + } + }, + { + "model": "lineups.positioning", + "pk": 137, + "fields": { + "player": 6, + "event": 21, + "position": "CF", + "order": 8 + } + }, + { + "model": "lineups.positioning", + "pk": 138, + "fields": { + "player": 1, + "event": 21, + "position": "C", + "order": 9 + } + }, + { + "model": "lineups.positioning", + "pk": 139, + "fields": { + "player": 4, + "event": 21, + "position": "RF", + "order": 10 + } + }, + { + "model": "lineups.positioning", + "pk": 140, + "fields": { + "player": 15, + "event": 23, + "position": "SS", + "order": 1 + } + }, + { + "model": "lineups.positioning", + "pk": 141, + "fields": { + "player": 10, + "event": 23, + "position": "1B", + "order": 2 + } + }, + { + "model": "lineups.positioning", + "pk": 142, + "fields": { + "player": 22, + "event": 23, + "position": "3B", + "order": 3 + } + }, + { + "model": "lineups.positioning", + "pk": 143, + "fields": { + "player": 18, + "event": 23, + "position": "LF", + "order": 4 + } + }, + { + "model": "lineups.positioning", + "pk": 144, + "fields": { + "player": 16, + "event": 23, + "position": "CF", + "order": 5 + } + }, + { + "model": "lineups.positioning", + "pk": 145, + "fields": { + "player": 5, + "event": 23, + "position": "RF", + "order": 6 + } + }, + { + "model": "lineups.positioning", + "pk": 146, + "fields": { + "player": 1, + "event": 23, + "position": "C", + "order": 7 + } + }, + { + "model": "lineups.positioning", + "pk": 147, + "fields": { + "player": 9, + "event": 23, + "position": "2B", + "order": 8 + } + }, + { + "model": "lineups.positioning", + "pk": 148, + "fields": { + "player": 8, + "event": 23, + "position": "DH", + "order": 9 + } + }, + { + "model": "lineups.positioning", + "pk": 149, + "fields": { + "player": 14, + "event": 23, + "position": "EH", + "order": 10 + } + }, + { + "model": "lineups.positioning", + "pk": 150, + "fields": { + "player": 4, + "event": 23, + "position": "EH", + "order": 11 + } + }, + { + "model": "lineups.positioning", + "pk": 151, + "fields": { + "player": 11, + "event": 24, + "position": "P", + "order": 0 + } + }, + { + "model": "lineups.positioning", + "pk": 152, + "fields": { + "player": 18, + "event": 24, + "position": "EH", + "order": 1 + } + }, + { + "model": "lineups.positioning", + "pk": 153, + "fields": { + "player": 15, + "event": 24, + "position": "SS", + "order": 2 + } + }, + { + "model": "lineups.positioning", + "pk": 154, + "fields": { + "player": 22, + "event": 24, + "position": "3B", + "order": 3 + } + }, + { + "model": "lineups.positioning", + "pk": 155, + "fields": { + "player": 6, + "event": 24, + "position": "LF", + "order": 4 + } + }, + { + "model": "lineups.positioning", + "pk": 156, + "fields": { + "player": 1, + "event": 24, + "position": "C", + "order": 5 + } + }, + { + "model": "lineups.positioning", + "pk": 157, + "fields": { + "player": 5, + "event": 24, + "position": "2B", + "order": 6 + } + }, + { + "model": "lineups.positioning", + "pk": 158, + "fields": { + "player": 14, + "event": 24, + "position": "1B", + "order": 7 + } + }, + { + "model": "lineups.positioning", + "pk": 159, + "fields": { + "player": 4, + "event": 24, + "position": "RF", + "order": 8 + } + }, + { + "model": "lineups.positioning", + "pk": 160, + "fields": { + "player": 20, + "event": 24, + "position": "CF", + "order": 9 + } + }, + { + "model": "lineups.positioning", + "pk": 161, + "fields": { + "player": 23, + "event": 24, + "position": "DH", + "order": 10 + } + }, + { + "model": "lineups.positioning", + "pk": 162, + "fields": { + "player": 2, + "event": 25, + "position": "P", + "order": 1 + } + }, + { + "model": "lineups.positioning", + "pk": 163, + "fields": { + "player": 16, + "event": 25, + "position": "CF", + "order": 2 + } + }, + { + "model": "lineups.positioning", + "pk": 164, + "fields": { + "player": 22, + "event": 25, + "position": "3B", + "order": 3 + } + }, + { + "model": "lineups.positioning", + "pk": 165, + "fields": { + "player": 15, + "event": 25, + "position": "C", + "order": 4 + } + }, + { + "model": "lineups.positioning", + "pk": 166, + "fields": { + "player": 13, + "event": 25, + "position": "2B", + "order": 5 + } + }, + { + "model": "lineups.positioning", + "pk": 167, + "fields": { + "player": 18, + "event": 25, + "position": "SS", + "order": 6 + } + }, + { + "model": "lineups.positioning", + "pk": 168, + "fields": { + "player": 10, + "event": 25, + "position": "1B", + "order": 7 + } + }, + { + "model": "lineups.positioning", + "pk": 169, + "fields": { + "player": 5, + "event": 25, + "position": "EH", + "order": 8 + } + }, + { + "model": "lineups.positioning", + "pk": 170, + "fields": { + "player": 17, + "event": 25, + "position": "LF", + "order": 9 + } + }, + { + "model": "lineups.positioning", + "pk": 171, + "fields": { + "player": 4, + "event": 25, + "position": "RF", + "order": 10 + } + }, + { + "model": "lineups.positioning", + "pk": 172, + "fields": { + "player": 12, + "event": 25, + "position": "EH", + "order": 11 + } + }, + { + "model": "lineups.positioning", + "pk": 173, + "fields": { + "player": 24, + "event": 27, + "position": "P", + "order": 0 + } + }, + { + "model": "lineups.positioning", + "pk": 174, + "fields": { + "player": 18, + "event": 27, + "position": "SS", + "order": 1 + } + }, + { + "model": "lineups.positioning", + "pk": 175, + "fields": { + "player": 15, + "event": 27, + "position": "C", + "order": 2 + } + }, + { + "model": "lineups.positioning", + "pk": 176, + "fields": { + "player": 2, + "event": 27, + "position": "EH", + "order": 3 + } + }, + { + "model": "lineups.positioning", + "pk": 177, + "fields": { + "player": 16, + "event": 27, + "position": "CF", + "order": 4 + } + }, + { + "model": "lineups.positioning", + "pk": 178, + "fields": { + "player": 5, + "event": 27, + "position": "3B", + "order": 5 + } + }, + { + "model": "lineups.positioning", + "pk": 179, + "fields": { + "player": 8, + "event": 27, + "position": "1B", + "order": 6 + } + }, + { + "model": "lineups.positioning", + "pk": 180, + "fields": { + "player": 17, + "event": 27, + "position": "LF", + "order": 7 + } + }, + { + "model": "lineups.positioning", + "pk": 181, + "fields": { + "player": 4, + "event": 27, + "position": "RF", + "order": 8 + } + }, + { + "model": "lineups.positioning", + "pk": 182, + "fields": { + "player": 23, + "event": 27, + "position": "2B", + "order": 9 + } + }, + { + "model": "lineups.positioning", + "pk": 183, + "fields": { + "player": 25, + "event": 27, + "position": "DH", + "order": 10 + } + }, + { + "model": "lineups.positioning", + "pk": 184, + "fields": { + "player": 18, + "event": 28, + "position": "LF", + "order": 1 + } + }, + { + "model": "lineups.positioning", + "pk": 185, + "fields": { + "player": 15, + "event": 28, + "position": "SS", + "order": 2 + } + }, + { + "model": "lineups.positioning", + "pk": 186, + "fields": { + "player": 2, + "event": 28, + "position": "P", + "order": 3 + } + }, + { + "model": "lineups.positioning", + "pk": 187, + "fields": { + "player": 5, + "event": 28, + "position": "C", + "order": 4 + } + }, + { + "model": "lineups.positioning", + "pk": 188, + "fields": { + "player": 8, + "event": 28, + "position": "3B", + "order": 5 + } + }, + { + "model": "lineups.positioning", + "pk": 189, + "fields": { + "player": 17, + "event": 28, + "position": "CF", + "order": 6 + } + }, + { + "model": "lineups.positioning", + "pk": 190, + "fields": { + "player": 4, + "event": 28, + "position": "RF", + "order": 7 + } + }, + { + "model": "lineups.positioning", + "pk": 191, + "fields": { + "player": 25, + "event": 28, + "position": "2B", + "order": 8 + } + }, + { + "model": "lineups.positioning", + "pk": 192, + "fields": { + "player": 23, + "event": 28, + "position": "EH", + "order": 9 + } + }, + { + "model": "lineups.positioning", + "pk": 193, + "fields": { + "player": 24, + "event": 28, + "position": "1B", + "order": 10 + } + }, + { + "model": "lineups.positioning", + "pk": 194, + "fields": { + "player": 25, + "event": 32, + "position": "P", + "order": 0 + } + }, + { + "model": "lineups.positioning", + "pk": 195, + "fields": { + "player": 15, + "event": 32, + "position": "C", + "order": 1 + } + }, + { + "model": "lineups.positioning", + "pk": 196, + "fields": { + "player": 16, + "event": 32, + "position": "CF", + "order": 2 + } + }, + { + "model": "lineups.positioning", + "pk": 197, + "fields": { + "player": 22, + "event": 32, + "position": "3B", + "order": 3 + } + }, + { + "model": "lineups.positioning", + "pk": 198, + "fields": { + "player": 19, + "event": 32, + "position": "SS", + "order": 4 + } + }, + { + "model": "lineups.positioning", + "pk": 199, + "fields": { + "player": 18, + "event": 32, + "position": "LF", + "order": 5 + } + }, + { + "model": "lineups.positioning", + "pk": 200, + "fields": { + "player": 13, + "event": 32, + "position": "RF", + "order": 6 + } + }, + { + "model": "lineups.positioning", + "pk": 201, + "fields": { + "player": 5, + "event": 32, + "position": "2B", + "order": 7 + } + }, + { + "model": "lineups.positioning", + "pk": 202, + "fields": { + "player": 17, + "event": 32, + "position": "EH", + "order": 8 + } + }, + { + "model": "lineups.positioning", + "pk": 203, + "fields": { + "player": 8, + "event": 32, + "position": "1B", + "order": 9 + } + }, + { + "model": "lineups.positioning", + "pk": 204, + "fields": { + "player": 2, + "event": 32, + "position": "EH", + "order": 10 + } + }, + { + "model": "lineups.positioning", + "pk": 205, + "fields": { + "player": 4, + "event": 32, + "position": "DH", + "order": 11 + } + }, + { + "model": "lineups.positioning", + "pk": 206, + "fields": { + "player": 19, + "event": 33, + "position": "SS", + "order": 1 + } + }, + { + "model": "lineups.positioning", + "pk": 207, + "fields": { + "player": 16, + "event": 33, + "position": "CF", + "order": 2 + } + }, + { + "model": "lineups.positioning", + "pk": 208, + "fields": { + "player": 22, + "event": 33, + "position": "3B", + "order": 3 + } + }, + { + "model": "lineups.positioning", + "pk": 209, + "fields": { + "player": 2, + "event": 33, + "position": "RF", + "order": 4 + } + }, + { + "model": "lineups.positioning", + "pk": 210, + "fields": { + "player": 18, + "event": 33, + "position": "C", + "order": 5 + } + }, + { + "model": "lineups.positioning", + "pk": 211, + "fields": { + "player": 10, + "event": 33, + "position": "EH", + "order": 6 + } + }, + { + "model": "lineups.positioning", + "pk": 212, + "fields": { + "player": 20, + "event": 33, + "position": "2B", + "order": 7 + } + }, + { + "model": "lineups.positioning", + "pk": 213, + "fields": { + "player": 17, + "event": 33, + "position": "LF", + "order": 8 + } + }, + { + "model": "lineups.positioning", + "pk": 214, + "fields": { + "player": 7, + "event": 33, + "position": "P", + "order": 9 + } + }, + { + "model": "lineups.positioning", + "pk": 215, + "fields": { + "player": 12, + "event": 33, + "position": "DH", + "order": 10 + } + }, + { + "model": "lineups.positioning", + "pk": 216, + "fields": { + "player": 4, + "event": 33, + "position": "EH", + "order": 11 + } + }, + { + "model": "lineups.positioning", + "pk": 217, + "fields": { + "player": 19, + "event": 34, + "position": "SS", + "order": 1 + } + }, + { + "model": "lineups.positioning", + "pk": 218, + "fields": { + "player": 2, + "event": 34, + "position": "P", + "order": 2 + } + }, + { + "model": "lineups.positioning", + "pk": 219, + "fields": { + "player": 22, + "event": 34, + "position": "3B", + "order": 3 + } + }, + { + "model": "lineups.positioning", + "pk": 220, + "fields": { + "player": 18, + "event": 34, + "position": "LF", + "order": 4 + } + }, + { + "model": "lineups.positioning", + "pk": 221, + "fields": { + "player": 20, + "event": 34, + "position": "CF", + "order": 5 + } + }, + { + "model": "lineups.positioning", + "pk": 222, + "fields": { + "player": 5, + "event": 34, + "position": "C", + "order": 6 + } + }, + { + "model": "lineups.positioning", + "pk": 223, + "fields": { + "player": 24, + "event": 34, + "position": "1B", + "order": 7 + } + }, + { + "model": "lineups.positioning", + "pk": 224, + "fields": { + "player": 9, + "event": 34, + "position": "2B", + "order": 8 + } + }, + { + "model": "lineups.positioning", + "pk": 225, + "fields": { + "player": 4, + "event": 34, + "position": "RF", + "order": 9 + } + }, + { + "model": "lineups.positioning", + "pk": 226, + "fields": { + "player": 25, + "event": 35, + "position": "P", + "order": 0 + } + }, + { + "model": "lineups.positioning", + "pk": 227, + "fields": { + "player": 19, + "event": 35, + "position": "SS", + "order": 1 + } + }, + { + "model": "lineups.positioning", + "pk": 228, + "fields": { + "player": 13, + "event": 35, + "position": "3B", + "order": 2 + } + }, + { + "model": "lineups.positioning", + "pk": 229, + "fields": { + "player": 22, + "event": 35, + "position": "C", + "order": 3 + } + }, + { + "model": "lineups.positioning", + "pk": 230, + "fields": { + "player": 15, + "event": 35, + "position": "2B", + "order": 4 + } + }, + { + "model": "lineups.positioning", + "pk": 231, + "fields": { + "player": 10, + "event": 35, + "position": "1B", + "order": 5 + } + }, + { + "model": "lineups.positioning", + "pk": 232, + "fields": { + "player": 18, + "event": 35, + "position": "RF", + "order": 6 + } + }, + { + "model": "lineups.positioning", + "pk": 233, + "fields": { + "player": 20, + "event": 35, + "position": "CF", + "order": 7 + } + }, + { + "model": "lineups.positioning", + "pk": 234, + "fields": { + "player": 5, + "event": 35, + "position": "EH", + "order": 8 + } + }, + { + "model": "lineups.positioning", + "pk": 235, + "fields": { + "player": 7, + "event": 35, + "position": "LF", + "order": 9 + } + }, + { + "model": "lineups.positioning", + "pk": 236, + "fields": { + "player": 4, + "event": 35, + "position": "DH", + "order": 10 + } + }, + { + "model": "lineups.positioning", + "pk": 237, + "fields": { + "player": 7, + "event": 37, + "position": "P", + "order": 0 + } + }, + { + "model": "lineups.positioning", + "pk": 238, + "fields": { + "player": 13, + "event": 37, + "position": "3B", + "order": 1 + } + }, + { + "model": "lineups.positioning", + "pk": 239, + "fields": { + "player": 16, + "event": 37, + "position": "CF", + "order": 2 + } + }, + { + "model": "lineups.positioning", + "pk": 240, + "fields": { + "player": 15, + "event": 37, + "position": "C", + "order": 3 + } + }, + { + "model": "lineups.positioning", + "pk": 241, + "fields": { + "player": 10, + "event": 37, + "position": "1B", + "order": 4 + } + }, + { + "model": "lineups.positioning", + "pk": 242, + "fields": { + "player": 18, + "event": 37, + "position": "SS", + "order": 5 + } + }, + { + "model": "lineups.positioning", + "pk": 243, + "fields": { + "player": 20, + "event": 37, + "position": "LF", + "order": 6 + } + }, + { + "model": "lineups.positioning", + "pk": 244, + "fields": { + "player": 5, + "event": 37, + "position": "2B", + "order": 7 + } + }, + { + "model": "lineups.positioning", + "pk": 245, + "fields": { + "player": 8, + "event": 37, + "position": "DH", + "order": 8 + } + }, + { + "model": "lineups.positioning", + "pk": 246, + "fields": { + "player": 4, + "event": 37, + "position": "RF", + "order": 9 + } + }, + { + "model": "lineups.positioning", + "pk": 247, + "fields": { + "player": 18, + "event": 36, + "position": "SS", + "order": 1 + } + }, + { + "model": "lineups.positioning", + "pk": 248, + "fields": { + "player": 5, + "event": 36, + "position": "CF", + "order": 2 + } + }, + { + "model": "lineups.positioning", + "pk": 249, + "fields": { + "player": 15, + "event": 36, + "position": "LF", + "order": 3 + } + }, + { + "model": "lineups.positioning", + "pk": 250, + "fields": { + "player": 10, + "event": 36, + "position": "P", + "order": 4 + } + }, + { + "model": "lineups.positioning", + "pk": 251, + "fields": { + "player": 8, + "event": 36, + "position": "3B", + "order": 5 + } + }, + { + "model": "lineups.positioning", + "pk": 252, + "fields": { + "player": 14, + "event": 36, + "position": "C", + "order": 6 + } + }, + { + "model": "lineups.positioning", + "pk": 253, + "fields": { + "player": 4, + "event": 36, + "position": "RF", + "order": 7 + } + }, + { + "model": "lineups.positioning", + "pk": 254, + "fields": { + "player": 24, + "event": 36, + "position": "2B", + "order": 8 + } + }, + { + "model": "lineups.positioning", + "pk": 255, + "fields": { + "player": 7, + "event": 38, + "position": "LF", + "order": 1 + } + }, + { + "model": "lineups.positioning", + "pk": 256, + "fields": { + "player": 15, + "event": 38, + "position": "SS", + "order": 2 + } + }, + { + "model": "lineups.positioning", + "pk": 257, + "fields": { + "player": 22, + "event": 38, + "position": "3B", + "order": 3 + } + }, + { + "model": "lineups.positioning", + "pk": 258, + "fields": { + "player": 10, + "event": 38, + "position": "2B", + "order": 4 + } + }, + { + "model": "lineups.positioning", + "pk": 259, + "fields": { + "player": 18, + "event": 38, + "position": "RF", + "order": 5 + } + }, + { + "model": "lineups.positioning", + "pk": 260, + "fields": { + "player": 17, + "event": 38, + "position": "CF", + "order": 6 + } + }, + { + "model": "lineups.positioning", + "pk": 261, + "fields": { + "player": 5, + "event": 38, + "position": "C", + "order": 7 + } + }, + { + "model": "lineups.positioning", + "pk": 262, + "fields": { + "player": 8, + "event": 38, + "position": "1B", + "order": 8 + } + }, + { + "model": "lineups.positioning", + "pk": 263, + "fields": { + "player": 6, + "event": 38, + "position": "P", + "order": 9 + } + }, + { + "model": "lineups.positioning", + "pk": 264, + "fields": { + "player": 4, + "event": 38, + "position": "EH", + "order": 10 + } + }, + { + "model": "lineups.positioning", + "pk": 265, + "fields": { + "player": 15, + "event": 39, + "position": "C", + "order": 1 + } + }, + { + "model": "lineups.positioning", + "pk": 266, + "fields": { + "player": 17, + "event": 39, + "position": "CF", + "order": 2 + } + }, + { + "model": "lineups.positioning", + "pk": 267, + "fields": { + "player": 22, + "event": 39, + "position": "3B", + "order": 3 + } + }, + { + "model": "lineups.positioning", + "pk": 268, + "fields": { + "player": 18, + "event": 39, + "position": "SS", + "order": 4 + } + }, + { + "model": "lineups.positioning", + "pk": 269, + "fields": { + "player": 9, + "event": 39, + "position": "P", + "order": 5 + } + }, + { + "model": "lineups.positioning", + "pk": 270, + "fields": { + "player": 14, + "event": 39, + "position": "1B", + "order": 6 + } + }, + { + "model": "lineups.positioning", + "pk": 271, + "fields": { + "player": 4, + "event": 39, + "position": "LF", + "order": 7 + } + }, + { + "model": "lineups.positioning", + "pk": 272, + "fields": { + "player": 23, + "event": 39, + "position": "2B", + "order": 8 + } + }, + { + "model": "lineups.positioning", + "pk": 273, + "fields": { + "player": 1, + "event": 39, + "position": "RF", + "order": 9 + } + }, + { + "model": "lineups.positioning", + "pk": 274, + "fields": { + "player": 24, + "event": 40, + "position": "P", + "order": 0 + } + }, + { + "model": "lineups.positioning", + "pk": 275, + "fields": { + "player": 16, + "event": 40, + "position": "CF", + "order": 1 + } + }, + { + "model": "lineups.positioning", + "pk": 276, + "fields": { + "player": 15, + "event": 40, + "position": "SS", + "order": 2 + } + }, + { + "model": "lineups.positioning", + "pk": 277, + "fields": { + "player": 22, + "event": 40, + "position": "3B", + "order": 3 + } + }, + { + "model": "lineups.positioning", + "pk": 278, + "fields": { + "player": 18, + "event": 40, + "position": "1B", + "order": 4 + } + }, + { + "model": "lineups.positioning", + "pk": 279, + "fields": { + "player": 20, + "event": 40, + "position": "LF", + "order": 5 + } + }, + { + "model": "lineups.positioning", + "pk": 280, + "fields": { + "player": 5, + "event": 40, + "position": "C", + "order": 6 + } + }, + { + "model": "lineups.positioning", + "pk": 281, + "fields": { + "player": 4, + "event": 40, + "position": "RF", + "order": 7 + } + }, + { + "model": "lineups.positioning", + "pk": 282, + "fields": { + "player": 23, + "event": 40, + "position": "2B", + "order": 8 + } + }, + { + "model": "lineups.positioning", + "pk": 283, + "fields": { + "player": 1, + "event": 40, + "position": "DH", + "order": 9 + } + }, + { + "model": "lineups.positioning", + "pk": 284, + "fields": { + "player": 7, + "event": 41, + "position": "P", + "order": 0 + } + }, + { + "model": "lineups.positioning", + "pk": 285, + "fields": { + "player": 20, + "event": 41, + "position": "CF", + "order": 1 + } + }, + { + "model": "lineups.positioning", + "pk": 286, + "fields": { + "player": 15, + "event": 41, + "position": "C", + "order": 2 + } + }, + { + "model": "lineups.positioning", + "pk": 287, + "fields": { + "player": 22, + "event": 41, + "position": "3B", + "order": 3 + } + }, + { + "model": "lineups.positioning", + "pk": 288, + "fields": { + "player": 19, + "event": 41, + "position": "SS", + "order": 4 + } + }, + { + "model": "lineups.positioning", + "pk": 289, + "fields": { + "player": 2, + "event": 41, + "position": "LF", + "order": 5 + } + }, + { + "model": "lineups.positioning", + "pk": 290, + "fields": { + "player": 10, + "event": 41, + "position": "1B", + "order": 6 + } + }, + { + "model": "lineups.positioning", + "pk": 291, + "fields": { + "player": 18, + "event": 41, + "position": "RF", + "order": 7 + } + }, + { + "model": "lineups.positioning", + "pk": 292, + "fields": { + "player": 5, + "event": 41, + "position": "EH", + "order": 8 + } + }, + { + "model": "lineups.positioning", + "pk": 293, + "fields": { + "player": 9, + "event": 41, + "position": "2B", + "order": 9 + } + }, + { + "model": "lineups.positioning", + "pk": 294, + "fields": { + "player": 1, + "event": 41, + "position": "DH", + "order": 10 + } + }, + { + "model": "lineups.positioning", + "pk": 295, + "fields": { + "player": 3, + "event": 10, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 296, + "fields": { + "player": 6, + "event": 10, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 297, + "fields": { + "player": 7, + "event": 10, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 298, + "fields": { + "player": 9, + "event": 10, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 299, + "fields": { + "player": 12, + "event": 10, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 300, + "fields": { + "player": 13, + "event": 10, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 301, + "fields": { + "player": 16, + "event": 10, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 302, + "fields": { + "player": 17, + "event": 10, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 303, + "fields": { + "player": 20, + "event": 10, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 304, + "fields": { + "player": 21, + "event": 10, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 305, + "fields": { + "player": 23, + "event": 10, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 306, + "fields": { + "player": 24, + "event": 10, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 307, + "fields": { + "player": 25, + "event": 10, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 308, + "fields": { + "player": 1, + "event": 19, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 309, + "fields": { + "player": 3, + "event": 19, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 310, + "fields": { + "player": 4, + "event": 19, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 311, + "fields": { + "player": 8, + "event": 19, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 312, + "fields": { + "player": 11, + "event": 19, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 313, + "fields": { + "player": 12, + "event": 19, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 314, + "fields": { + "player": 14, + "event": 19, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 315, + "fields": { + "player": 16, + "event": 19, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 316, + "fields": { + "player": 19, + "event": 19, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 317, + "fields": { + "player": 20, + "event": 19, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 318, + "fields": { + "player": 21, + "event": 19, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 319, + "fields": { + "player": 24, + "event": 19, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 320, + "fields": { + "player": 25, + "event": 19, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 321, + "fields": { + "player": 3, + "event": 9, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 322, + "fields": { + "player": 4, + "event": 9, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 323, + "fields": { + "player": 6, + "event": 9, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 324, + "fields": { + "player": 7, + "event": 9, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 325, + "fields": { + "player": 8, + "event": 9, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 326, + "fields": { + "player": 9, + "event": 9, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 327, + "fields": { + "player": 12, + "event": 9, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 328, + "fields": { + "player": 13, + "event": 9, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 329, + "fields": { + "player": 14, + "event": 9, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 330, + "fields": { + "player": 16, + "event": 9, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 331, + "fields": { + "player": 17, + "event": 9, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 332, + "fields": { + "player": 21, + "event": 9, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 333, + "fields": { + "player": 23, + "event": 9, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 334, + "fields": { + "player": 24, + "event": 9, + "position": null, + "order": null + } + }, + { + "model": "lineups.positioning", + "pk": 335, + "fields": { + "player": 25, + "event": 9, + "position": null, + "order": null + } + } +] \ No newline at end of file diff --git a/load_blaseball.sh b/load_blaseball.sh new file mode 100755 index 0000000..08046e7 --- /dev/null +++ b/load_blaseball.sh @@ -0,0 +1,7 @@ +#!/bin/bash +PROJECT_PATH="/Users/asc/PycharmProjects_Local/benchcoach" +PYTHON_PATH="$PROJECT_PATH/venv/bin/python" +FIXTURES="blaseball" +MANAGE_PY_PATH="$PROJECT_PATH/manage.py" +bash -cl "$PYTHON_PATH $MANAGE_PY_PATH flush --no-input" +bash -cl "$PYTHON_PATH $MANAGE_PY_PATH loaddata $FIXTURES" diff --git a/load_cmba.sh b/load_cmba.sh new file mode 100755 index 0000000..d911f10 --- /dev/null +++ b/load_cmba.sh @@ -0,0 +1,7 @@ +#!/bin/bash +PROJECT_PATH="/Users/asc/PycharmProjects_Local/benchcoach" +PYTHON_PATH="$PROJECT_PATH/venv/bin/python" +FIXTURES="2021cmba" +MANAGE_PY_PATH="$PROJECT_PATH/manage.py" +bash -cl "$PYTHON_PATH $MANAGE_PY_PATH flush --no-input" +bash -cl "$PYTHON_PATH $MANAGE_PY_PATH loaddata $FIXTURES" diff --git a/players/fixtures/2021cmba.json b/players/fixtures/2021cmba.json new file mode 100644 index 0000000..b0d7c76 --- /dev/null +++ b/players/fixtures/2021cmba.json @@ -0,0 +1,227 @@ +[ + { + "model": "players.player", + "pk": null, + "fields": { + "first_name": "Tony", + "jersey_number": 13, + "last_name": "Correa" + } + }, + { + "model": "players.player", + "pk": null, + "fields": { + "first_name": "Tim", + "jersey_number": 8, + "last_name": "Riggenbach" + } + }, + { + "model": "players.player", + "pk": null, + "fields": { + "first_name": "Thomas", + "jersey_number": 44, + "last_name": "Feazelle" + } + }, + { + "model": "players.player", + "pk": null, + "fields": { + "first_name": "Philip", + "jersey_number": 25, + "last_name": "Oweimrin" + } + }, + { + "model": "players.player", + "pk": null, + "fields": { + "first_name": "Phil", + "jersey_number": 21, + "last_name": "Zelenka" + } + }, + { + "model": "players.player", + "pk": null, + "fields": { + "first_name": "Nick", + "jersey_number": 23, + "last_name": "Schmidt" + } + }, + { + "model": "players.player", + "pk": null, + "fields": { + "first_name": "Mike", + "jersey_number": 28, + "last_name": "DiCola" + } + }, + { + "model": "players.player", + "pk": null, + "fields": { + "first_name": "Max", + "jersey_number": 99, + "last_name": "Kiefer" + } + }, + { + "model": "players.player", + "pk": null, + "fields": { + "first_name": "Matthew", + "jersey_number": 5, + "last_name": "Steffens" + } + }, + { + "model": "players.player", + "pk": null, + "fields": { + "first_name": "Matt", + "jersey_number": 6, + "last_name": "Burch" + } + }, + { + "model": "players.player", + "pk": null, + "fields": { + "first_name": "Jules", + "jersey_number": 34, + "last_name": "Cantor" + } + }, + { + "model": "players.player", + "pk": null, + "fields": { + "first_name": "John", + "jersey_number": 34, + "last_name": "Lundgren" + } + }, + { + "model": "players.player", + "pk": null, + "fields": { + "first_name": "Joe", + "jersey_number": 17, + "last_name": "Malafronte" + } + }, + { + "model": "players.player", + "pk": null, + "fields": { + "first_name": "Hans", + "jersey_number": 18, + "last_name": "Hetrick" + } + }, + { + "model": "players.player", + "pk": null, + "fields": { + "first_name": "Greg", + "jersey_number": 19, + "last_name": "Sells" + } + }, + { + "model": "players.player", + "pk": null, + "fields": { + "first_name": "Garrett", + "jersey_number": 17, + "last_name": "Eddy" + } + }, + { + "model": "players.player", + "pk": null, + "fields": { + "first_name": "Cole", + "jersey_number": 24, + "last_name": "Thompson" + } + }, + { + "model": "players.player", + "pk": null, + "fields": { + "first_name": "Brian", + "jersey_number": 2, + "last_name": "Lehman" + } + }, + { + "model": "players.player", + "pk": null, + "fields": { + "first_name": "Brent", + "jersey_number": 27, + "last_name": "Fukushima" + } + }, + { + "model": "players.player", + "pk": null, + "fields": { + "first_name": "Brandon", + "jersey_number": 3, + "last_name": "Jessee" + } + }, + { + "model": "players.player", + "pk": null, + "fields": { + "first_name": "Brad", + "jersey_number": 15, + "last_name": "Halperin" + } + }, + { + "model": "players.player", + "pk": null, + "fields": { + "first_name": "Arron", + "jersey_number": 11, + "last_name": "Kruse" + } + }, + { + "model": "players.player", + "pk": null, + "fields": { + "first_name": "Amanda", + "jersey_number": 41, + "last_name": "Mordacq" + } + }, + { + "model": "players.player", + "pk": null, + "fields": { + "first_name": "Alec", + "jersey_number": 14, + "last_name": "Reinke" + } + }, + { + "model": "players.player", + "pk": null, + "fields": { + "first_name": "Adrien", + "jersey_number": 45, + "last_name": "Kelly" + } + } +] \ No newline at end of file diff --git a/players/fixtures/sample_players.yaml b/players/fixtures/blaseball.yaml similarity index 100% rename from players/fixtures/sample_players.yaml rename to players/fixtures/blaseball.yaml diff --git a/teams/fixtures/2021cmba.json b/teams/fixtures/2021cmba.json new file mode 100644 index 0000000..6d6acd6 --- /dev/null +++ b/teams/fixtures/2021cmba.json @@ -0,0 +1,82 @@ +[ + { + "model": "teams.team", + "pk": null, + "fields": { + "name": "Browns", + "image": "images/browns.svg" + } + }, + { + "model": "teams.team", + "pk": null, + "fields": { + "name": "DegenerateX", + "image": "images/ramriez.svg" + } + }, + { + "model": "teams.team", + "pk": null, + "fields": { + "name": "Dodgers", + "image": "images/dodgers.svg" + } + }, + { + "model": "teams.team", + "pk": null, + "fields": { + "name": "Electrons", + "image": "images/electrons.svg" + } + }, + { + "model": "teams.team", + "pk": null, + "fields": { + "name": "Hounds", + "image": "images/hounds.svg" + } + }, + { + "model": "teams.team", + "pk": null, + "fields": { + "name": "Marlins", + "image": "images/marlins.svg" + } + }, + { + "model": "teams.team", + "pk": null, + "fields": { + "name": "Orioles", + "image": "images/orioles.svg" + } + }, + { + "model": "teams.team", + "pk": null, + "fields": { + "name": "Trojans", + "image": "images/trojans.svg" + } + }, + { + "model": "teams.team", + "pk": null, + "fields": { + "name": "Vikings", + "image": "images/vikings.svg" + } + }, + { + "model": "teams.team", + "pk": null, + "fields": { + "name": "White Sox", + "image": "images/whitesox.svg" + } + } +] \ No newline at end of file diff --git a/teams/fixtures/sample_teams.yaml b/teams/fixtures/blaseball.yaml similarity index 100% rename from teams/fixtures/sample_teams.yaml rename to teams/fixtures/blaseball.yaml diff --git a/venues/fixtures/2021cmba.json b/venues/fixtures/2021cmba.json new file mode 100644 index 0000000..c148922 --- /dev/null +++ b/venues/fixtures/2021cmba.json @@ -0,0 +1,149 @@ +[ + { + "model": "venues.venue", + "pk": null, + "fields": { + "name": "Winnemac Park" + } + }, + { + "model": "venues.venue", + "pk": null, + "fields": { + "name": "Southwest Park" + } + }, + { + "model": "venues.venue", + "pk": null, + "fields": { + "name": "Taft HS" + } + }, + { + "model": "venues.venue", + "pk": null, + "fields": { + "name": "Maywood Park" + } + }, + { + "model": "venues.venue", + "pk": null, + "fields": { + "name": "Altgeld" + } + }, + { + "model": "venues.venue", + "pk": null, + "fields": { + "name": "Maine South" + } + }, + { + "model": "venues.venue", + "pk": null, + "fields": { + "name": "Walther Christian Academy" + } + }, + { + "model": "venues.venue", + "pk": null, + "fields": { + "name": "Grosche" + } + }, + { + "model": "venues.venue", + "pk": null, + "fields": { + "name": "Clemente" + } + }, + { + "model": "venues.venue", + "pk": null, + "fields": { + "name": "Northeastern University" + } + }, + { + "model": "venues.venue", + "pk": null, + "fields": { + "name": "Proviso East" + } + }, + { + "model": "venues.venue", + "pk": null, + "fields": { + "name": "Columbus Park" + } + }, + { + "model": "venues.venue", + "pk": null, + "fields": { + "name": "Ridgewood HS" + } + }, + { + "model": "venues.venue", + "pk": null, + "fields": { + "name": "Mount Carmel HS" + } + }, + { + "model": "venues.venue", + "pk": null, + "fields": { + "name": "Kroc Center" + } + }, + { + "model": "venues.venue", + "pk": null, + "fields": { + "name": "Simeon" + } + }, + { + "model": "venues.venue", + "pk": null, + "fields": { + "name": "Proviso West HS" + } + }, + { + "model": "venues.venue", + "pk": null, + "fields": { + "name": "Jane Addams Park" + } + }, + { + "model": "venues.venue", + "pk": null, + "fields": { + "name": "Ozinga" + } + }, + { + "model": "venues.venue", + "pk": null, + "fields": { + "name": "Lemont High School" + } + }, + { + "model": "venues.venue", + "pk": null, + "fields": { + "name": "K's Dugout" + } + } +] \ No newline at end of file diff --git a/venues/fixtures/sample_venues.yaml b/venues/fixtures/blaseball.yaml similarity index 100% rename from venues/fixtures/sample_venues.yaml rename to venues/fixtures/blaseball.yaml From c0519f2a886f09cc60119da80d28a8b1dae2a887 Mon Sep 17 00:00:00 2001 From: Tony Date: Fri, 12 Nov 2021 10:48:23 -0600 Subject: [PATCH 4/5] started lineup tests --- lineups/tests.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/lineups/tests.py b/lineups/tests.py index 7ce503c..f244a39 100644 --- a/lineups/tests.py +++ b/lineups/tests.py @@ -1,3 +1,22 @@ from django.test import TestCase +from django.test import TestCase, Client +from django.test.utils import setup_test_environment +from django.urls import reverse +from .models import Positioning, Player +from .forms import PositioningFormSet -# Create your tests here. +class TestVenueViews(TestCase): + fixtures = ['blaseball'] + + def test_positioning_list(self): + response = self.client.get(reverse('edit lineup', args=[1])) + self.assertEqual(response.status_code, 200) + + def test_positioning_formset(self): + formset = PositioningFormSet({ + 'form-0-id':1, + 'form-0-order':0, + 'form-0-player':Player.objects.get(id=1), + 'form-0-position':'P' + }) + self.assertTrue(formset.is_valid()) \ No newline at end of file From 9bc16353b7f26344070c64d9f98a3cd9ca38b6da Mon Sep 17 00:00:00 2001 From: Tony Date: Fri, 12 Nov 2021 14:09:21 -0600 Subject: [PATCH 5/5] added and verified tests --- events/tests.py | 65 ++++++++++++++++++++++++++++++++++++++++++------ lineups/tests.py | 44 ++++++++++++++++++++++++++------ players/tests.py | 26 ++++++++++++++----- teams/tests.py | 38 ++++++++++++++++++++++++++++ venues/tests.py | 9 +++---- 5 files changed, 155 insertions(+), 27 deletions(-) diff --git a/events/tests.py b/events/tests.py index d53b3b8..7294e95 100644 --- a/events/tests.py +++ b/events/tests.py @@ -2,8 +2,8 @@ from django.test import TestCase, Client from django.test.utils import setup_test_environment from django.urls import reverse from .models import Event - -FIXTURES = ['sample_events.yaml', 'sample_teams.yaml'] +from datetime import datetime +FIXTURES = ['blaseball'] class TestEventModel(TestCase): fixtures = FIXTURES @@ -13,19 +13,68 @@ class TestEventModel(TestCase): Return the desired event """ event = Event.objects.get(id=1) - # self.assertEqual(event.first_name, "Edric") - # self.assertEqual(event.last_name, "Tosser") - # self.assertEqual(event.jersey_number, 1) - # self.assertEqual(event.team.name, "Chicago Firefighters") + self.assertEqual("Chicago Firefighters", event.away_event.name) + self.assertEqual("Dallas Steaks", event.home_event.name) + self.assertEqual('George Fourman Stadium', event.venue.name) + self.assertEqual(datetime( + year=2020, + month=8, + day=24, + hour=16, + minute=0, + second=1), event.start) class TestEventViews(TestCase): fixtures = FIXTURES def test_event_list(self): response = self.client.get(reverse('schedule')) - self.assertEqual(response.status_code, 200) + self.assertEqual(200, response.status_code) def test_event_edit(self): response = self.client.get(reverse('edit event', args=[2])) - self.assertEqual(response.status_code, 200) + self.assertEqual(200, response.status_code) + # create new event + new_event_data = { + 'home_team': 23, + 'away_team': 24, + 'start':datetime( + year=2021, + month=1, + day=1, + hour=9, + minute=0, + second=0), + 'venue':19 + } + + response = self.client.post(reverse('edit event', args=[0]), data=new_event_data) + self.assertEqual(201, response.status_code) + new_event = Event.objects.get(id=response.context['id']) + self.assertEqual(new_event_data['home_team'], new_event.home_team.id) + self.assertEqual(new_event_data['away_team'], new_event.away_team_id) + self.assertEqual(new_event_data['start'], new_event.start) + + # modify event + modified_event_data = { + 'home_team': 23, + 'away_team': 24, + 'start':datetime( + year=2021, + month=1, + day=1, + hour=9, + minute=0, + second=0), + 'venue':19 + } + response = self.client.post(reverse('edit event', args=[1]), data=modified_event_data) + self.assertEqual(200, response.status_code) + self.assertEqual(1, response.context['id']) + modified_event = Event.objects.get(id=response.context['id']) + + self.assertEqual(modified_event_data['home_team'], modified_event.home_team.id) + self.assertEqual(modified_event_data['away_team'], modified_event.away_team.id) + self.assertEqual(modified_event_data['start'], modified_event.start) + self.assertEqual(modified_event_data['venue'], modified_event.venue.id) diff --git a/lineups/tests.py b/lineups/tests.py index f244a39..55f395e 100644 --- a/lineups/tests.py +++ b/lineups/tests.py @@ -13,10 +13,40 @@ class TestVenueViews(TestCase): self.assertEqual(response.status_code, 200) def test_positioning_formset(self): - formset = PositioningFormSet({ - 'form-0-id':1, - 'form-0-order':0, - 'form-0-player':Player.objects.get(id=1), - 'form-0-position':'P' - }) - self.assertTrue(formset.is_valid()) \ No newline at end of file + event = 1 + + sample_data = [ + # first player positioning + (1, Player.objects.get(id=1).id, 'P'), + (2, Player.objects.get(id=2).id, 'C'), + (3, Player.objects.get(id=3).id, '1B') + ] + data = {} + + for i, (order, player, position) in enumerate(sample_data): + data[f'form-{i}-order']=order + data[f'form-{i}-player']=player + data[f'form-{i}-position'] = position + + management = { + 'form-INITIAL_FORMS': '0', + 'form-TOTAL_FORMS': len(sample_data), + 'form-MAX_NUM_FORMS': '' + } + + formset = PositioningFormSet({**management, **data}) + + self.assertTrue(formset.is_valid()) + for form in formset: + self.assertTrue(form.is_valid()) + + response = self.client.post(reverse('edit lineup', args=[event]), {**management, **data}) + + self.assertEqual(response.status_code, 200) + + for d in sample_data: + with self.subTest(d): + p = Positioning.objects.get(player_id=d[1], event_id=event) + self.assertEqual(d[0], p.order) + self.assertEqual(d[2], p.position) + pass \ No newline at end of file diff --git a/players/tests.py b/players/tests.py index 1aaac93..dc24f5d 100644 --- a/players/tests.py +++ b/players/tests.py @@ -1,9 +1,8 @@ from django.test import TestCase, Client -from django.test.utils import setup_test_environment from django.urls import reverse from .models import Player -FIXTURES = ['sample_players.yaml', 'sample_teams.yaml'] +FIXTURES = ['blaseball'] class TestPlayerModel(TestCase): fixtures = FIXTURES @@ -30,15 +29,30 @@ class TestPlayerViews(TestCase): self.assertEqual(response.status_code, 200) # create new player - response = self.client.post(reverse('edit player', args=[0]), data={'name': "A new player"}) + new_player_data = { + 'first_name': "A new player first name", + 'last_name': "A new player last name", + 'jersey_number':99, + 'team':1 + } + + response = self.client.post(reverse('edit player', args=[0]), data=new_player_data) self.assertEqual(201, response.status_code) new_player = Player.objects.get(id=response.context['id']) - self.assertEqual('A new player', new_player.name) + self.assertEqual(new_player_data['first_name'], new_player.first_name) + self.assertEqual(new_player_data['last_name'], new_player.last_name) # modify player - response = self.client.post(reverse('edit player', args=[1]), data={'name': "A different player name"}) + modified_player_data = { + 'first_name': "A changed player first name", + 'last_name': "A changed player last name", + 'jersey_number': 99, + 'team': 1 + } + response = self.client.post(reverse('edit player', args=[1]), data=modified_player_data) self.assertEqual(200, response.status_code) self.assertEqual(1, response.context['id']) modified_player = Player.objects.get(id=response.context['id']) - self.assertEqual('A different player name', modified_player.name) + self.assertEqual(modified_player_data['first_name'], modified_player.first_name) + self.assertEqual(modified_player_data['last_name'], modified_player.last_name) diff --git a/teams/tests.py b/teams/tests.py index 7ce503c..0e52a25 100644 --- a/teams/tests.py +++ b/teams/tests.py @@ -1,3 +1,41 @@ +from django.urls import reverse from django.test import TestCase +from .models import Team # Create your tests here. +class TestTeamModel(TestCase): + fixtures = ['blaseball'] + + def test_query_team(self): + """ + Return the desired team + """ + team = Team.objects.get(id=1) + self.assertEqual(team.name, "Chesapeake Racetrack and Ballpark") + +class TestTeamViews(TestCase): + fixtures = ['blaseball'] + + def test_team_list(self): + response = self.client.get(reverse('teams list')) + self.assertEqual(response.status_code, 200) + self.assertIn((1, 'Chesapeake Racetrack and Ballpark'), response.context['items']) + self.assertIn((2, 'Tokyo Fitness Center'), response.context['items']) + self.assertIn((25, 'ILB Historical Preservation Site'), response.context['items']) + + def test_team_edit(self): + response = self.client.get(reverse('edit team', args=[1])) + self.assertEqual(response.status_code, 200) + + #create new team + response = self.client.post(reverse('edit team', args=[0]), data={'name': "A new team"}) + self.assertEqual(201, response.status_code) + new_team = Team.objects.get(id=response.context['id']) + self.assertEqual('A new team',new_team.name, ) + + # modify team + response = self.client.post(reverse('edit team', args=[1]), data={'name': "A different team name"}) + self.assertEqual(200, response.status_code) + self.assertEqual(1, response.context['id']) + modified_team = Team.objects.get(id=response.context['id']) + self.assertEqual('A different team name', modified_team.name) \ No newline at end of file diff --git a/venues/tests.py b/venues/tests.py index 8aa4646..151c3c9 100644 --- a/venues/tests.py +++ b/venues/tests.py @@ -1,12 +1,9 @@ -from django.test import TestCase, Client -from django.test.utils import setup_test_environment +from django.test import TestCase from django.urls import reverse from .models import Venue -FIXTURES = ['sample_venues.yaml'] - class TestVenueModel(TestCase): - fixtures = FIXTURES + fixtures = ['blaseball'] def test_query_venue(self): """ @@ -16,7 +13,7 @@ class TestVenueModel(TestCase): self.assertEqual(venue.name, "Chesapeake Racetrack and Ballpark") class TestVenueViews(TestCase): - fixtures = FIXTURES + fixtures = ['blaseball'] def test_venue_list(self): response = self.client.get(reverse('venues list'))