Beispiel #1
0
    def setUp(self):
        self.tearDown()

        self.client = Client()

        self.camera_type_axis = CameraType(
            name='Axis',
            driver='axis.AxisDriver',
            is_controlled=False,
        )
        self.camera_type_axis.save()
        self.camera_type_axis_manage = CameraType(
            name='Axis Manage',
            driver='axis.AxisDriver',
            is_controlled=True,
        )
        self.camera_type_axis_manage.save()

        self.tariff_view_package = Tariff(
            name='View Package 1 min',
            description='View Package Description...',
            cost=1.0,
            duration=2,
            is_controlled=False,
        )
        self.tariff_view_package.save()

        self.tariff_view_time = Tariff(
            name='View Package Time',
            description='View Package Description...',
            cost=1.0,
            is_controlled=False,
        )
        self.tariff_view_time.save()

        self.tariff_manage_package = Tariff(
            name='Manage Package 1 min',
            description='Manage Package Description...',
            cost=2.0,
            duration=2,
            is_controlled=True,
        )
        self.tariff_manage_package.save()

        self.tariff_manage_time = Tariff(
            name='Manage Package Time',
            description='Manage Package Description...',
            cost=2.0,
            is_controlled=True,
        )
        self.tariff_manage_time.save()

        for i in xrange(1, 4):
            user = User.create_user(email='*****@*****.**' % i, password='******')
            user.cash = 1000000.0
            user.save()
            camera = Camera(
                name='Test Billing Camera %i' % i,
                owner=user,
                type=self.camera_type_axis_manage,
                stream_name='boston',
                camera_management_host='localhost.boston.com',
                camera_management_username='******',
                camera_management_password='******',
                is_view_enabled=True,
                is_view_public=True,
                is_view_paid=True,
                is_management_enabled=True,
                is_management_public=True,
                is_management_paid=True,
                is_managed=True,
                management_packet_tariff=self.tariff_manage_package,
                management_time_tariff=self.tariff_manage_time,
                view_packet_tariff=self.tariff_view_package,
                view_time_tariff=self.tariff_view_time,
            )
            camera.save()
Beispiel #2
0
    def handle(self, *args, **options):
        num = int(args and args[0] or 10)
        with_ava = len(args) > 1

        for type in (
                documents.User,
                Message,
                FriendshipOffer,
                UserFriends,
                GroupUser,
        ):
            type.objects.delete()

        if with_ava:
            if not os.path.exists('faces94'):
                raise CommandError(
                    'faces database not exists, do\n'
                    'wget http://cswww.essex.ac.uk/mv/allfaces/faces94.zip && unzip faces94.zip'
                )

            faces = []

            def visit(arg, dirname, names):
                if len(re.split('/', dirname)) != 3:
                    return
                faces.append(os.path.join(dirname, random.choice(names)))

            os.path.walk('faces94', visit, None)
            random.shuffle(faces)

        # creating accounts
        male_first_names = u'''
        Сергей
        Александр
        Дмитрий
        Андрей
        Артур
        Игорь
        Армен
        Алексей
        Григорий
        '''.split()

        female_first_names = u'''
        Анна
        Анастасия
        Риана
        Елена
        Мария
        Дарина
        Кристина
        Марина
        Ангелина
        Полина
        '''.split()

        male_last_names = u'''
        Смирнов
        Иванов
        Кузнецов
        Соколов
        Попов
        Лебедев
        Козлов
        Новиков
        Морозов
        Петров
        Волков
        Соловьёв
        Васильев
        Зайцев
        Павлов
        Семёнов
        Голубев
        Виноградов
        Богданов
        Воробьёв
        Фёдоров
        Михайлов
        Беляев
        Тарасов
        '''.split()

        female_last_names = [u'%sа' % x for x in male_last_names]

        male_names = (male_first_names, male_last_names)
        female_names = (female_first_names, female_last_names)

        print
        for i in xrange(num):
            if not i % (num / 10 or 10):
                print '\rusers creation %002d%%' % (i * 100 / num)
                sys.stdout.flush()
            if with_ava:
                if faces[i].find('/female/') != -1:
                    names = female_names
                else:
                    names = male_names
            else:
                names = random.choice((male_names, female_names))

            first_name = random.choice(names[0])
            last_name = random.choice(names[1])

            email = '*****@*****.**' % i

            acc = documents.User.create_user(first_name=first_name,
                                             last_name=last_name,
                                             email=email,
                                             password='******',
                                             is_superuser=bool(not i))
            acc.save()
            if with_ava:
                client = Client()
                client.login(email=email, password='******')
                file = open(faces[i])
                with patch_settings(TASKS_ENABLED={}):
                    client.post(reverse('social:avatar_edit'), {'file': file})

        print '\rusers creation 100%'
        # friending & messaging
        print
        for i in xrange(num):
            max_friends_count = random.randint(0, num % 25 + 25)
            friends_numbers = set([
                random.randint(0, num - 1) for _ in xrange(max_friends_count)
            ]).difference(set([i]))
            this_user = documents.User.objects().order_by('username')[i]

            for fn in friends_numbers:
                friend = documents.User.objects().order_by('username')[fn]
                #this_user.reload()
                this_user.friends.offers.send(friend)
                random.randint(0, 3) and friend.friends.offers.send(
                    this_user)  # ~66%

            max_msg_sndrs_count = random.randint(0, num)
            msg_sndrs_numbers = set([
                random.randint(0, num - 1) for _ in xrange(max_msg_sndrs_count)
            ]).difference(set([i]))

            for sndr_num in msg_sndrs_numbers:
                messages_count = random.randint(0, 3)

                sndr = documents.User.objects().order_by('username')[sndr_num]
                for _ in xrange(messages_count):
                    Message.send(sndr, this_user, lorem_ipsum.paragraph())

            if not i % (num / 10 or 10):
                print '\rfriending and messaging %002d%%' % (i * 100 / num),
                sys.stdout.flush()
        print '\rfriending and messaging 100%'
        print

        CameraType(
            name='Axis only view',
            driver='apps.cam.drivers.axis.AxisDriver',
        ).save()
        CameraType(
            name='Axis manage',
            driver='apps.cam.drivers.axis.AxisDriver',
            is_controlled=True,
        ).save()
        print '\rCemeras 100%'
        print

        Tariff(
            name='View Package 1 min',
            description='View Package Description...',
            cost=1.0,
            duration=60.0,
            is_controlled=False,
        ).save()
        Tariff(
            name='View Package Time',
            description='View Package Description...',
            cost=1.0,
            is_controlled=False,
        ).save()
        Tariff(
            name='Manage Package 1 min',
            description='Manage Package Description...',
            cost=2.0,
            duration=60.0,
            is_controlled=True,
        ).save()
        Tariff(
            name='Manage Package Time',
            description='Manage Package Description...',
            cost=2.0,
            is_controlled=True,
        ).save()
        print '\rTariffs 100%'