Пример #1
0
    def test_get_route_record_for_multi_routes(self):
        user_id = 1
        route_id = [1, 2]
        dal = Dal.get_dal()

        create_sample_route_record(record_type=[1, 0])
        route_record = dal = Dal.get_dal().get_route_record_for_user(
            user_id, route_id)
        # breakpoint()
        self.assertEqual(route_record['record_type'][0], 1)
        self.assertEqual(route_record['record_type'][1], 0)
Пример #2
0
def add_sample_route_set(gym_id,
                         colour='black',
                         grade=['high', 'medium'],
                         down_date=None,
                         up_date='03/06/2019'):
    dal = Dal.get_dal()
    dal.add_route_set(gym_id, colour, grade, up_date, down_date=down_date)
Пример #3
0
    def test_record_num_climbed_for_user(self):
        user_id = 1
        route_id = 1
        record_type_arb = 1

        user_2 = 2
        route_id_2 = 2
        record_type_is_climbed = conf.ClimbStatus.climbed.value

        create_auth_user()
        create_auth_user(name='new_user')
        add_sample_data()
        dal = Dal.get_dal()
        dal.set_route_record_for_user(user_2, route_id, record_type_arb)

        dal.set_route_record_for_user(user_2, route_id_2,
                                      record_type_is_climbed)
        dal.set_route_record_for_user(user_2, route_id_2,
                                      record_type_is_climbed)
        dal.set_route_record_for_user(user_2, route_id_2,
                                      record_type_is_climbed)
        breakpoint()
        data_2 = dal.get_records_for_active_routes(user_id=user_2)
        num_climbed = data_2['num_climbed']
        self.assertEqual(num_climbed[0], 1)
        self.assertEqual(num_climbed[1], 3)
Пример #4
0
    def test_get_records_for_active_routes_with_record_date(self):
        user_id = 1
        route_id = 1
        record_type = conf.ClimbStatus.climbed.value

        self.add_sample_data_active()
        create_auth_user()
        dal = Dal.get_dal()

        profile = Profile.objects.all().filter(user__id=user_id)[0]
        route = Route.objects.all().filter(id=route_id)[0]

        td = timedelta(days=30)
        date_base = datetime.now().date()

        RouteRecord.objects.create(user=profile,
                                   route=route,
                                   record_type=record_type)
        RouteRecord.objects.create(user=profile,
                                   route=route,
                                   record_type=record_type)
        RouteRecord.objects.filter(id=1).update(date=(date_base - td))

        data = dal.get_records_for_active_routes(gym_id=1, user_id=1)
        self.assertEqual(data['date_climbed'][0], datetime.now().date())
Пример #5
0
 def test_add_route_with_down_date(self):
     dal = Dal.get_dal()
     down_date = '04/07/2019'
     down_date_exp = datetime.strptime(down_date, "%d/%m/%Y").date()
     add_sample_data(down_date=down_date)
     data = dal.get_routes_all()
     self.assertEqual(data.get_down_date()[0], down_date_exp)
Пример #6
0
    def test_record_is_climbed_for_user(self):
        user_id = 1
        route_id = 1
        record_type_arb = 1

        user_2 = 2
        route_id_2 = 2
        record_type_is_climbed = conf.ClimbStatus.climbed.value

        create_auth_user()
        create_auth_user(name='new_user')
        add_sample_data()
        dal = Dal.get_dal()
        dal.set_route_record_for_user(user_id, route_id, record_type_arb)

        dal.set_route_record_for_user(user_2, route_id_2,
                                      record_type_is_climbed)
        dal.set_route_record_for_user(user_2, route_id_2,
                                      record_type_is_climbed)

        data = dal.get_records_for_active_routes(user_id=1)
        is_climbed = data['is_climbed']
        self.assertEqual(is_climbed[0], True)
        self.assertEqual(is_climbed[1], False)

        data_2 = dal.get_records_for_active_routes(user_id=user_2)
        is_climbed_2 = data_2['is_climbed']
        self.assertEqual(is_climbed_2[0], False)
        self.assertEqual(is_climbed_2[1], True)
Пример #7
0
    def test_get_grade_that_is_active(self):
        ''' This test asserts that only an active date is returned'''
        up_date_old = '11/06/2019'
        up_date_active = '15/06/2019'
        up_date_future = '11/07/2020'
        colour_exp = 'red'

        # Add dates out of order to ensure that it simply is not picking
        # up the latest and is instead ordering query by date
        add_sample_data(up_date=up_date_active,
                        grade=['medium'],
                        colour=colour_exp)
        add_sample_data(up_date=up_date_future,
                        grade=['medium'],
                        colour=colour_exp)
        add_sample_data(up_date=up_date_old,
                        grade=['medium'],
                        colour=colour_exp)

        dal = Dal.get_dal()
        data = dal.get_active_route_set(colour_exp, is_active=True)

        colour_act = data.get_grade()[0]
        up_date_act = data.get_up_date()[0]
        self.assertEqual(colour_act, colour_exp)
        self.assertEqual(up_date_act,
                         Utils.convert_str_to_datetime(up_date_active))
        self.assertEqual(data.get_count(), 1)
Пример #8
0
    def test_record_for_multi_route_sets(self):
        user_id = 1
        route_id = 1
        record_type_arb = 1

        user_2 = 2
        route_id_2 = 2
        record_type_is_climbed = conf.ClimbStatus.climbed.value

        route_id_for_2nd_set = 3

        create_auth_user()
        add_sample_data()
        add_sample_data(colour='red')

        dal = Dal.get_dal()
        dal.set_route_record_for_user(user_2, route_id, record_type_arb)

        dal.set_route_record_for_user(user_2, route_id_2,
                                      record_type_is_climbed)
        dal.set_route_record_for_user(user_2, route_id_2,
                                      record_type_is_climbed)
        dal.set_route_record_for_user(user_2, route_id_2,
                                      record_type_is_climbed)

        dal.set_route_record_for_user(user_2, route_id_for_2nd_set,
                                      record_type_is_climbed)

        data_2 = dal.get_records_for_active_routes(user_id=user_2)
        num_climbed = data_2['num_climbed']
        self.assertEqual(num_climbed[0], 1)
        self.assertEqual(num_climbed[1], 3)

        self.fail()
Пример #9
0
 def test_delete_gym(self):
     city = 'test'
     gym = add_sample_gym(city=city)
     self.assertEqual(Gym.objects.count(), 1)
     dal = Dal.get_dal()
     dal._delete_gym(gym.id)
     self.assertEqual(Gym.objects.count(), 0)
Пример #10
0
    def test_get_records_for_active_routes(self):

        self.add_sample_data_active()
        self.add_sample_data_inactive(colour='black')

        dal = Dal.get_dal()
        data = dal.get_records_for_active_routes(gym_id=1, user_id=1)

        self.assertEqual(data['grade'], [conf.Grade.red.value] * 2)
Пример #11
0
    def test_get_route_record_for_non_existent_user(self):
        user_id = 100
        route_id = 1

        create_sample_route_record(record_type=[1, 0])
        dal = Dal.get_dal()
        route_record = dal.get_route_record_for_user(user_id, route_id)

        self.assertEqual(route_record['record_type'], [0])
Пример #12
0
    def test_get_route_record(self):

        user_id = 1
        route_id = 1

        create_sample_route_record(record_type=[1, 0])
        dal = Dal.get_dal()
        route_record = dal.get_route_record_for_user(user_id, route_id)

        self.assertEqual(route_record['record_type'][0], 1)
Пример #13
0
 def test_get_route_set(self):
     dates = ['04/07/2019', '04/07/2021', '04/06/2019']
     add_sample_data(grade=['medium'], up_date=dates[0])
     add_sample_route_set(1)
     dal = Dal.get_dal()
     data = dal.get_route_set_data(gym_id=1)
     self.assertEqual(data['up_date'][0],
                      Utils.convert_str_to_datetime(dates[0]))
     self.assertEqual(data['num_routes'][0], 1)
     self.assertEqual(data['num_routes'][1], 2)
     self.fail()
Пример #14
0
    def test_update_gym(self):
        city = 'test'
        email = '*****@*****.**'
        email_new = '*****@*****.**'
        Gym.objects.raw('TRUNCATE TABLE route,routeset,gym RESTART IDENTITY;')
        add_sample_gym(city=city, email=email)

        dal = Dal.get_dal()
        dal.update_gym(1, email=email_new)

        self.assertNotEqual(email, email_new)
Пример #15
0
    def test_create_gym(self):
        email = 'edinburgh@edenrockclimbing,com'
        city = 'Edinburgh'
        name = 'Eden Rock Edinburgh'
        dal = Dal.get_dal()
        dal.create_gym(name, email, city)

        gym = Gym.objects.all()

        self.assertEqual(gym[0].name, name)
        self.assertEqual(gym[0].city, city)
        self.assertEqual(gym[0].email, email)
Пример #16
0
    def test_get_records_for_active_routes_with_record(self):
        user_id = 1
        route_id = 1
        record_type = conf.ClimbStatus.climbed.value

        self.add_sample_data_active()
        create_auth_user()

        dal = Dal.get_dal()
        dal.set_route_record_for_user(user_id, route_id, record_type)
        data = dal.get_records_for_active_routes(gym_id=1, user_id=1)

        self.assertEqual(data['is_climbed'], [True, False])
Пример #17
0
    def test_add_route_set(self):

        dal = Dal.get_dal()
        data = dal.get_routes_all()
        self.assertEqual(data.get_count(), 0,
                         'ensure that there is zero routes in db initially')

        add_sample_data()

        dataNew = dal.get_routes_all()
        self.assertEqual(dataNew.get_count(), 2)
        self.assertEqual(dataNew.get_grade()[0], conf.Grade.black.name)
        self.assertEqual(dataNew.get_grade_sub()[0], conf.GradeSub.high.name)
Пример #18
0
    def test_get_grade_name_of_last_recorded_climb__no_climbs_recorded(self):
        user_id = 10
        gym_id = 1

        create_sample_route_record(status=[1, 0])

        dal = Dal.get_dal()
        grade_name = dal.get_grade_name_of_last_recorded_climb(user_id, gym_id)
        grade_name_check, id = dal._get_grade_name_of_last_recorded_climb(
            user_id, gym_id)

        self.assertEqual(grade_name, grade_name_check)
        self.assertEqual(grade_name, [])
        self.assertEqual(id, [])
Пример #19
0
    def test_add_route_set_protecting_against_duplicates(self):

        dal = Dal.get_dal()
        data = dal.get_routes_all()
        self.assertEqual(data.get_count(), 0,
                         'ensure that there is zero routes in db initially')
        # breakpoint()
        add_sample_gym()
        add_sample_route_set(gym_id=1)
        add_sample_route_set(gym_id=1)

        dataNew = dal.get_routes_all()
        self.assertEqual(dataNew.get_count(), 2)
        self.assertEqual(dataNew.get_grade()[0], conf.Grade.black.name)
        self.assertEqual(dataNew.get_grade_sub()[0], conf.GradeSub.high.name)
Пример #20
0
    def test_get_grade_name_of_last_recorded_climb(self):
        user_id = 1
        route_id = 1
        gym_id = 1
        create_sample_route_record(record_type=[1, 0])

        dal = Dal.get_dal()
        grade_name = dal.get_grade_name_of_last_recorded_climb(user_id, gym_id)
        grade_name_check, id = dal._get_grade_name_of_last_recorded_climb(
            user_id, gym_id)

        # breakpoint()
        self.assertEqual(grade_name, grade_name_check)
        self.assertEqual(grade_name, 'black')
        self.assertEqual(id, 2)
Пример #21
0
    def test_get_all_routes_are_ordered_by_up_date(self):
        dates = ['04/07/2019', '04/07/2021', '04/06/2019']
        add_sample_data(grade=['medium'], up_date=dates[0])
        add_sample_data(grade=['medium'], up_date=dates[1])
        add_sample_data(grade=['medium'], up_date=dates[2])

        dal = Dal.get_dal()
        data = dal.get_routes_all()

        self.assertEqual(data.get_up_date()[0],
                         Utils.convert_str_to_datetime(dates[1]))
        self.assertEqual(data.get_up_date()[1],
                         Utils.convert_str_to_datetime(dates[0]))
        self.assertEqual(data.get_up_date()[2],
                         Utils.convert_str_to_datetime(dates[2]))
Пример #22
0
    def test_set_new_route_record(self):
        user_id = 1
        route_id = 1
        is_climbed = True
        record_type = 101

        create_auth_user()
        add_sample_data()
        dal = Dal.get_dal()
        dal.set_route_record_for_user(user_id, route_id, record_type)

        rr = RouteRecord.objects.all().filter(user__id=user_id).filter(
            route__id=route_id)
        # breakpoint()
        self.assertEqual(rr[0].record_type, record_type)
Пример #23
0
    def test_record_is_onsight(self):
        user_id = 1
        route_id = 1
        record_type_arb = conf.ClimbStatus.onsight.value

        create_auth_user()
        add_sample_data()
        dal = Dal.get_dal()

        dal.set_route_record_for_user(user_id, route_id, record_type_arb)

        data = dal.get_records_for_active_routes()
        is_onsight = data['is_onsight']

        self.assertEqual(is_onsight[0], True)
Пример #24
0
    def test_set_existing_route_record(self):
        user_id = 1
        route_id = 1
        is_climbed = True
        record_type = 101

        create_auth_user()
        add_sample_data()
        dal = Dal.get_dal()
        dal.set_route_record_for_user(user_id, route_id, record_type)
        dal.set_route_record_for_user(user_id, route_id, 123)

        rr = RouteRecord.objects.all().filter(user__id=user_id).filter(
            route__id=route_id)
        self.assertEqual(rr[0].record_type, 101)
        self.assertEqual(rr.count(), 2)
Пример #25
0
    def test_record_is_attempted(self):
        user_id = 1
        route_id = 1
        record_type_arb = conf.ClimbStatus.attempted.value

        create_auth_user()
        add_sample_data()
        dal = Dal.get_dal()

        dal.set_route_record_for_user(user_id, route_id, record_type_arb)

        data = dal.get_records_for_active_routes()
        is_att = data['is_attempted']

        self.assertEqual(is_att[0], True)
        self.assertEqual(data['num_attempted'][0], 1)
Пример #26
0
    def test_get_grade(self):
        up_date_old = '11/06/2019'
        up_date_new = '11/07/2019'
        colour_old = 'black'
        colour_new = 'red'
        add_sample_data(up_date=up_date_old,
                        grade=['medium'],
                        colour=colour_old)
        add_sample_data(up_date=up_date_new,
                        grade=['medium'],
                        colour=colour_new)
        dal = Dal.get_dal()
        data = dal.get_route_set_of_grade(colour_new, is_active=False)

        colour_act = data.get_grade()
        self.assertEqual(colour_act[0], colour_new)
        self.assertEqual(data.get_count(), 1)
Пример #27
0
 def test_add_route_without_down_date(self):
     dal = Dal.get_dal()
     down_date_exp = None
     add_sample_data()
     data = dal.get_routes_all()
     self.assertEqual(data.get_down_date()[0], down_date_exp)
Пример #28
0
def add_sample_gym(city='Edinburgh',
                   name='Eden Rocks Edinburgh',
                   email='*****@*****.**'):
    dal = Dal.get_dal()
    gym = dal.create_gym(name, email, city)
    return gym
Пример #29
0
import routes.services.dal as Dal
import routes.services.conf as conf
import os
from routes.models import RouteSet, Route, RouteRecord, Profile, Gym
from datetime import datetime, timedelta

dal = Dal.get_dal()


def route_set(gym_id,
              colour='black',
              grade_sub=['high', 'medium'],
              down_date=None,
              up_date='03/06/2019'):
    dal.add_route_set(gym_id, colour, grade_sub, up_date, down_date=down_date)


def gym_and_route_set(colour='black',
                      grade_sub=['high', 'medium'],
                      down_date=None,
                      up_date='03/06/2019',
                      city='Edinburgh',
                      name='Eden Rocks Edinburgh',
                      email='*****@*****.**'):
    g = add_gym(city=city, name=name, email=email)
    route_set(g.id,
              colour=colour,
              grade_sub=grade_sub,
              down_date=down_date,
              up_date=up_date)
Пример #30
0
 def test_get_all_routes_with_zero_in_database(self):
     dal = Dal.get_dal()
     data = dal.get_routes_all()
     self.assertFalse(data.get_count())