def test_newDuplicateNullEmail(self): Provider.create(name="Test Provider", telephone="1234567891", email='', categories=[Category.query.get(1)]) p = Provider.query.filter_by(name="Test Provider").first() assert p is not None
def setUp(self): ''' Set up method that will run before every Test ''' self.new_provider = Provider(1234, 'Python Must Be Crazy', 'A thrilling new Python Series', '/khsjha27hbs', 8.5, 129993)
def create_providers(): """ creates 1000 sample provides :return: None """ fake = Faker() for i in range(1000): provider_obj = Provider() provider_obj.name = fake.company() provider_obj.phone_number = fake.phone_number() provider_obj.email = "email" + str(random.randint(0, 9999)) + "@email.com" provider_obj.currency = config.CURRENCY[random.randint(0, len(config.CURRENCY) - 1)][0] provider_obj.language = config.LANGUAGES[random.randint(0, len(config.LANGUAGES) - 1)][0] provider_obj.created_by = User.objects.get(id=1) provider_obj.modified_by = User.objects.get(id=1) provider_obj.save()
def provider_add(): """Adds provider to db.""" form = ProviderAddForm() form.populate_choices() form_dict = form.data if form.validate_on_submit(): address = Address(unknown=form.address.unknown.data, line1=form.address.line1.data, line2=form.address.line2.data, city=form.address.city.data, state_id=form.address.state.data, zip=form.address.zip.data) categories = [Category.query.get(cat) for cat in form.category.data] provider = Provider.create(name=form.name.data, email=form.email.data, telephone=form.telephone.data, website=form.website.data, address=address, categories=categories) address.get_coordinates() flash(provider.name + " added.") return redirect(url_for("main.index")) elif request.method == "POST" and not form.validate(): flash("Failed to add provider") return render_template("provideradd.html", title="Add Provider", form=form, form_dict=form_dict), 422 if not current_user.email_verified: disableForm(form) flash("Form disabled. Please verify email to unlock.") return render_template("provideradd.html", title="Add Provider", form=form, form_dict=form_dict)
def providerAutocomplete(): """Pulls list of providers matching input text.""" form = ProviderSearchForm(request.args) form.populate_choices() print(form.data) del form.sort if form.validate(): try: searchLocation = Location(form.location.data, form.manual_location.data, (form.gpsLat.data, form.gpsLong.data)) except AddressError: msg = {"status": "failed", "reason": "invalid address"} return jsonify(msg), 422 searchLocation.setRangeCoordinates() filters = { "name": form.name.data, "category": Category.query.get(form.category.data), "location": searchLocation } sortCriteria = "name" providers = Provider.search(filters, sortCriteria, limit=10) providers = [{ "id": provider.id, "name": provider.name, "line1": provider.line1, "city": provider.city, "state": provider.state_short } for provider in providers] return jsonify(providers) msg = {"status": "failed", "reason": "invalid form data"} return jsonify(msg), 422
def test_searchShortDistance(self, activeClient, baseProviderSearch): baseProviderSearch.update({"searchRange": 7}) filters, sort = self.generateSearchFilters(baseProviderSearch) providers = Provider.search(filters, sort) assert len(providers) == 2 assert providers[0].name == 'Douthit Electrical' assert providers[1].name == 'Preferred Electric Co'
def searchJSON(): form = ProviderSearchForm(request.args).populate_choices() del form.location page = request.args.get('page', 1, int) if form.validate() or request.args.get('page') is not None: location = session['location'] searchLocation = Location(location['source'], location['address'], location['coordinates']) searchLocation.setRangeCoordinates() reviewFilters = { "friends": form.friends_filter.data, "groups": form.groups_filter.data, "reviewed": form.reviewed_filter.data } filters = { "name": form.name.data, "category": Category.query.get(form.category.data), "location": searchLocation } sortCriteria = form.sort.data providers = Provider.search(filters, sortCriteria, reviewFilters) if sortCriteria == "distance": providers = sortByDistance(searchLocation.coordinates, providers) pagination = Pagination(providers, page, current_app.config.get('PER_PAGE')) providers = pagination.paginatedData providersDict = [provider._asdict() for provider in providers] return jsonify(providersDict, location)
def test_create_appointment(): """ Test creating an appointment with a patient and a provider """ # Arrange patient = Patient(first_name="Aly", last_name="Sivji") provider = Provider(first_name="Doctor", last_name="Acula") now = datetime.now() a = Appointment(start=now, end=now, department='foo', patient=patient, provider=provider) # Act db.session.add(a) db.session.commit() # Assert assert len(Appointment.query.all()) == 1 queried_appointment = Appointment.query.one() assert queried_appointment.department == 'foo' assert queried_appointment.patient_id == patient.id assert queried_appointment.provider_id == provider.id db.session.delete(a) db.session.delete(patient) db.session.delete(provider) db.session.commit()
def test_searchReviewed(self, activeClient, baseProviderSearch): baseProviderSearch['reviewed_filter'] = True filters, sort = self.generateSearchFilters(baseProviderSearch) providers = Provider.search(filters, sort=sort) assert len(providers) == 2 assert providers[0].name == 'Douthit Electrical' assert providers[1].name == 'Preferred Electric Co'
def upgrade() -> None: session = Session(bind=op.get_bind()) BaseModel.set_session(session) # ### commands auto generated by Alembic - please adjust! ### provider = Provider.all()[0] collection = seed_initial_collection(provider.uuid) seed_initial_items(collection.uuid)
def update_provider(provider_uuid: UUID, provider_update: ProviderDTO) -> ProviderDTO: provider = Provider.find_or_fail(provider_uuid) provider.name = provider_update.name provider.save() provider.session.commit() return to_model(provider, ProviderDTO)
def provider_list(): """Pulls list of providers matching category from db.""" category_id = request.args.get("category") provider_list = Provider.list(category_id, format="dict") optional = request.args.get("optional") if optional == "true": provider_list.insert(0, {"id": 0, "name": "<---Choose from list--->"}) provider_list = jsonify(provider_list) return provider_list
def test_searchLimit(self, activeClient, baseProviderSearch): filters, sort = self.generateSearchFilters(baseProviderSearch) limit = 1 providers = Provider.search(filters, sort=sort, limit=limit) assert len(providers) == 1 assert providers[0].name == 'Douthit Electrical' assert providers[0].reviewAverage == (10 / 4) assert providers[0].reviewCount == 4 assert providers[0].reviewCost == (18 / 4)
def test_searchRatingSort(self, activeClient, baseProviderSearch): baseProviderSearch['sort'] = 'rating' filters, sort = self.generateSearchFilters(baseProviderSearch) providers = Provider.search(filters, sort) assert len(providers) == 3 assert providers[0].name == 'Preferred Electric Co' assert providers[1].name == 'Douthit Electrical' assert providers[2].name == 'Evers Electric' assert providers[1].categories == "Electrician,Plumber"
def test_searchName(self, activeClient, baseProviderSearch): baseProviderSearch['name'] = 'Evers Electric' filters, sort = self.generateSearchFilters(baseProviderSearch) providers = Provider.search(filters, sort) assert providers[0].name == 'Evers Electric' assert providers[0].website == 'www.everselectric.com/' assert providers[0].reviewAverage is None assert providers[0].reviewCount == 0 assert providers[0].reviewCost is None
def create_provider(provider_name): provider = Provider(name=provider_name) check_provider = provider.query.filter_by(name=provider_name).first() if check_provider is not None: return None else: db.session.add(provider) db.session.commit() return provider
def test_searchGroups(self, activeClient, baseProviderSearch): baseProviderSearch['groups_filter'] = True filters, sort = self.generateSearchFilters(baseProviderSearch) providers = Provider.search(filters, sort=sort) assert len(providers) == 1 assert providers[0].name == 'Douthit Electrical' assert providers[0].reviewAverage == 5 assert providers[0].reviewCount == 1 assert providers[0].reviewCost == 5 assert providers[0].categories == "Electrician,Plumber"
def setUp(self) -> None: self.redis = redis self.test_provider1 = Provider( 'http://www.mocky.io/v2/5d19ec932f00004e00fd7326', 'code', 'rate') self.test_provider1.rate_data = {'usd': 6, 'eur': 5, 'gbp': 1} self.test_provider2 = Provider( 'http://www.mocky.io/v2/5d19ec932f00004e00fd7326', 'code', 'rate') self.test_provider2.rate_data = {'usd': 2, 'eur': 1, 'gbp': 2} self.daily_test_data = [{ 'usd': 1, 'eur': 2, 'gbp': 3 }, { 'usd': 2, 'eur': 2, 'gbp': 7 }, { 'usd': 3, 'eur': 2, 'gbp': 5 }]
def test_searchFriendsOrGroups(self, activeClient, baseProviderSearch): baseProviderSearch.update({ "friends_filter": True, "groups_filter": True }) filters, sort = self.generateSearchFilters(baseProviderSearch) providers = Provider.search(filters, sort=sort) assert len(providers) == 1 assert providers[0].name == 'Douthit Electrical' assertEqualsTolerance(providers[0].reviewAverage, (7 / 3), 3) assert providers[0].reviewCount == 3 assert providers[0].reviewCost == 5 assert providers[0].categories == "Electrician,Plumber"
def test_searchNoName(self, activeClient, baseProviderSearch): # create filters, location, category filters, sort = self.generateSearchFilters(baseProviderSearch) providers = Provider.search(filters, sort) assert len(providers) == 3 assert providers[0].name == 'Douthit Electrical' assert providers[1].name == 'Evers Electric' assert providers[2].name == 'Preferred Electric Co' assert providers[0].reviewAverage == (10 / 4) assert providers[0].reviewCount == 4 assert providers[0].reviewCost == (18 / 4) assert providers[0].categories == "Electrician,Plumber"
def create_acl(user: InternalUserDTO, acl: ACLDTO) -> ACLDTO: if acl.collection_uuid: collection = Collection.find_writeable_or_fail(user, acl.collection_uuid) if collection.provider_uuid != user.provider_uuid: raise PermissionError if acl.item_uuid: item = Item.find_writeable_or_fail(user, acl.item_uuid) if item.collection.provider_uuid != user.provider_uuid: raise PermissionError if acl.granted_provider_uuid: Provider.find_or_fail(acl.granted_provider_uuid) if acl.granted_user_uuid: User.find_or_fail(acl.granted_user_uuid) acl.provider_uuid = user.provider_uuid acl = ACL(**acl.to_dict()) acl.save() acl.session.commit() return to_model(acl, ACLDTO)
def lowest_rate(currency): currency = currency.lower() if currency not in AVAILABLE_CURRENCY_UNITS: return 'Lutfen gecerli bir para birimi giriniz' rate = is_cache_available_for_ten_mins() if rate: rate = parse_rate(rate) return json.dumps(rate['rates'][currency]) providers_env = json.loads(os.getenv('providers')) provider_list = [] for provider in providers_env: provider_list.append(Provider(provider['url'], provider['code_key'], provider['rate_key'])) rate = compare_providers(provider_list) return json.dumps(rate[currency])
def seed_initial_user(): session = Session(bind=op.get_bind()) BaseModel.set_session(session) provider = Provider.create(name="fpx") password = None try: password = os.environ["FIRST_SUPERUSER_PASSWORD"].encode("utf-8") except KeyError: print("You must set env variable USER_PASSWORD!!!") exit() user = User.create( email=os.environ.get("FIRST_SUPERUSER", "*****@*****.**"), provider_uuid=provider.uuid, password=bcrypt.hashpw(password, bcrypt.gensalt()).decode("utf-8"), ) print("Your master user token: " + create_access_token(str(user.uuid)))
def test_create_invalid_appointment_missing_patient(): """ Test creating an appointment with a provider and no patient """ # Arrange provider = Provider(first_name="Doctor", last_name="Acula") now = datetime.now() a = Appointment(start=now, end=now, department='foo', provider=provider) # Act db.session.add(a) # Assert with pytest.raises(IntegrityError): db.session.commit() db.session.rollback() assert len(Appointment.query.all()) == 0
def provider(name, id): """Generate provider profile page.""" form = ProviderFilterForm(request.args) filters = {"id": id, "name": name} try: provider = Provider.search(filters)[0] except IndexError: flash("Provider not found. Please try a different search.") return render_template('errors/404.html'), 404 if form.validate(): reviewFilter = { "friends_filter": form.friends_filter.data, "groups_filter": form.groups_filter.data } page = request.args.get('page', 1, int) return_code = 200 else: last = dict(parse.parse_qsl(parse.urlsplit(request.referrer).query)) filter_keys = ['friends_filter', 'groups_filter'] reviewFilter = {k: last.get(k) == 'y' for k in filter_keys} page = last.get('page', 1) return_code = 422 if provider.reviewCount > 0: reviews = Review.search(provider_id=provider.id, filter=reviewFilter) pagination = Pagination(reviews, page, current_app.config.get('PER_PAGE')) pag_args = {"name": name, "id": id} pag_urls = pagination.get_urls('main.provider', pag_args) reviews = pagination.paginatedData else: reviews = None pag_urls = None provider_json = simplejson.dumps(provider._asdict(), sort_keys=True) return render_template("provider_profile.html", title="Provider Profile", provider=provider, pag_urls=pag_urls, reviews=reviews, form=form, reviewFilter=reviewFilter, provider_json=provider_json), return_code
def addProvider(request): args = {} args = getBasicInfo(args, "Agregar Proveedor") if request.POST: name = request.POST['name'] short_description = request.POST['short-description'] large_description = request.POST['large-description'] web_page = request.POST['web-page'] logo = request.FILES['logo'] new_provider = Provider() new_provider.name = name new_provider.short_description = short_description new_provider.description = large_description new_provider.web_page = web_page if logo: new_provider.logo = logo new_provider.save() args['msg'] = "Proveedor agregado correctamente" return render_to_response('aeadmin/providers/add_provider.html', args, context_instance=RequestContext(request)) else: return render_to_response('aeadmin/providers/add_provider.html', args, context_instance=RequestContext(request))
def test_create_provider(): """ Test creating a provider """ # Arrange p = Provider(first_name="Doctor", last_name="Acula") # Act db.session.add(p) db.session.commit() # Assert assert len(Provider.query.all()) == 1 queried_provider = Provider.query.one() assert queried_provider.first_name == 'Doctor' assert queried_provider.last_name == 'Acula' db.session.delete(p) db.session.commit()
def add_provider(self, name): new_provider = Provider(name=name) db.session.add(new_provider) db.session.commit()
first_name="Alissa", last_name="Johnson") my_schedule_access = Security_Point(name="provider schedule access") orders_access = Security_Point(name="order creation") department_schedule_access = Security_Point( name="department schedule access") patient_search = Security_Point(name="patient search") chart_access = Security_Point(name="chart access") patient_checkin_access = Security_Point(name="patient checkin") patient_registration_access = Security_Point(name="patient registration") patient_user_access = Security_Point(name="patient user access") user_editor_access = Security_Point(name="user editor access") record_editor_access = Security_Point(name="record editor access") demo_provider = Provider(specialty="Family Medicine") demo_patient = Patient( firstName="Clare", lastName="Donohue-Meyer", dob=datetime.datetime(1993, 6, 22), sex="female", address_line_one="221B Baker St.", address_city="Austin", address_state="TX", address_zip="78731", bmi="22.74", beats_per_minute="75", weight="112", height="5'4''", ethnicity="White",
def search(): form = ProviderSearchForm(request.args) form.populate_choices() page = request.args.get('page', 1, int) form_dict = json.dumps(form.data) if form.validate() or request.args.get('page') is not None: try: searchLocation = Location(form.location.data, form.manual_location.data, (form.gpsLat.data, form.gpsLong.data)) except AddressError: flash("Invalid address submitted. Please re-enter and try again.") if form.manual_location.data not in [None, ""]: msg = "Invalid Address. Please updated." form.manual_location.errors.append(msg) return render_template("index.html", form_dict=form_dict, form=form, title="Search"), 422 searchLocation.setRangeCoordinates(form.searchRange.data) filters = { "name": form.name.data, "category": Category.query.get(form.category.data), "location": searchLocation, "friends": form.friends_filter.data, "groups": form.groups_filter.data, "reviewed": form.reviewed_filter.data } sortCriteria = form.sort.data providers = Provider.search(filters, sortCriteria) if providers == []: flash("No results found. Please try a different search.") providersDict = simplejson.dumps([], sort_keys=True) summary = None pag_urls = None locationDict = None else: summary = Review.summaryStatSearch(filters) if sortCriteria == "distance": providers = sortByDistance(searchLocation.coordinates, providers) pagination = Pagination(providers, page, current_app.config.get('PER_PAGE')) pag_urls = pagination.get_urls('main.search', request.args) providers = pagination.paginatedData providersDict = [provider._asdict() for provider in providers] providersDict = simplejson.dumps(providersDict, sort_keys=True) if session.get('location'): locationDict = session['location'] locationDict = simplejson.dumps(locationDict, sort_keys=True) else: locationDict = None filter_fields = [ form.reviewed_filter, form.friends_filter, form.groups_filter ] reviewFilter = {} for field in filter_fields: if field.data is True: reviewFilter[field.name] = 'y' form.initialize() return render_template("index.html", form=form, title="Search", providers=providers, pag_urls=pag_urls, form_dict=form_dict, reviewFilter=reviewFilter, locationDict=locationDict, providersDict=providersDict, summary=summary) return render_template("index.html", form=form, form_dict=form_dict, title="Search"), 422
def get_providers() -> List[ProviderDTO]: providers = Provider.all() return to_models(providers, ProviderDTO)
def create_provider(provider: ProviderDTO) -> ProviderDTO: provider = Provider(**provider.to_dict()) provider.save() provider.session.commit() return to_model(provider, ProviderDTO)