Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release version 1.7.8 #219

Merged
merged 10 commits into from
May 26, 2017
19 changes: 9 additions & 10 deletions linku_backend/functional_tests/mainpage_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys


def test_login_and_logout_button_on_main_page(browser):
Expand All @@ -18,17 +19,15 @@ def test_login_and_logout_button_on_main_page(browser):
# 비밀번호를 1234를 입력하고
browser.find_element_by_xpath("//input[@name='password']").send_keys('1234')
# 로그인 버튼을 클릭했더니
#element = WebDriverWait(browser, 30).until(
# EC.presence_of_element_located((By.XPATH, "//form[@class='ui form']/button"))
#)
#browser.get(BASE_URL + '/login')
browser.find_element_by_xpath("//form[@class='ui form']/button").send_keys(Keys.ENTER)
# 로그아웃 버튼이 나올 때 까지 기다리자
logout_element = WebDriverWait(browser, 30).until(
EC.presence_of_element_located((By.XPATH, "//button[text()='로그아웃']"))
)
# 메인화면으로 다시 돌아왔고
#element.click()

#assert BASE_URL == browser.current_url
assert BASE_URL + "/" == browser.current_url
# 메인페이지에는 로그인이라고 써져있던 버튼이 로그아웃으로 바껴 있었다.
#logout_elem = browser.find_element_by_xpath("//button[text()='로그아웃']")
# 그래서 로그아웃 버튼을 눌렀더니
#logout_elem.click()
logout_element.click()
# 다시 로그인 버튼으로 바뀌었다.
#browser.find_element_by_xpath("//button[text()='로그인']")
browser.find_element_by_xpath("//button[text()='로그인']")
2 changes: 1 addition & 1 deletion linku_backend/functional_tests/meeting_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@ def login_with(browser, username, password):
def test_show_meeting_infos(browser):
browser.get(BASE_URL)
meeting_card = browser.find_elements_by_xpath("//div[@id='meeting-card']")
assert len(meeting_card) == 2
assert len(meeting_card) == 1
1 change: 1 addition & 0 deletions linku_backend/linku/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
url(r'^login/', obtain_auth_token),
url(r'^user/', views.get_user_info, name='get_user_info'),
url(r'^leave-user/', views.leave_user, name='leave_user'),
url(r'^participated-dates/', views.get_participated_dates, name='get_participated_dates'),
url(r'^apply-alarm/', views.apply_alarm, name='apply_alarm'),
url(r'^next-meeting-alarm/', views.next_meeting_alarm, name='next_meeting_alarm'),
Expand Down
21 changes: 21 additions & 0 deletions linku_backend/meeting/tests/user_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
from rest_framework.authtoken.models import Token

from meeting.models import User, Meeting, StatusByDay
from django.core.exceptions import ObjectDoesNotExist


@pytest.mark.django_db
Expand Down Expand Up @@ -99,3 +100,23 @@ def test_next_meeting_alarm_request(client):
response = client.post('/next-meeting-alarm/', {}, **auth_headers)
assert response.status_code == 400
assert response.data['Message'] == "Already Done"


@pytest.mark.django_db
def test_leave_user(client):
user = create_test_user(client)

auth_headers = {
'HTTP_AUTHORIZATION': 'Token ' + get_login_token(user)
}

response = client.post('/leave-user/', {}, **auth_headers)

assert response.status_code == 200
assert response.data['Message'] == "Success"

try:
User.objects.get(username=user.username)
raise Exception
except ObjectDoesNotExist:
pass
10 changes: 10 additions & 0 deletions linku_backend/meeting/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,16 @@ def next_meeting_alarm(request, format=None):
return Response({"Message": "Success"})


@api_view(['POST'])
@authentication_classes((TokenAuthentication,))
@permission_classes((IsAuthenticated,))
def leave_user(request):
if request.method == 'POST':
request.user.delete()
return Response({"Message": "Success"})
return Response(status=status.HTTP_400_BAD_REQUEST)


@api_view(['POST'])
def check_university_verification_auth_number(request):
if request.method == 'POST':
Expand Down
2 changes: 1 addition & 1 deletion linku_frontend/linku/src/components/login/LoginForm.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ const renderField = ({ input, label, type, htmlFor, labelText, meta: { touched,
const LoginForm = ({handleSubmit, submitting}) => {
return (
<Form onSubmit={handleSubmit}>
<Field name="username" component={renderField} htmlFor="username" labelText="이메일" type="text" validate={[emailRequired, emailCorrectForm]}/>
<Field name="username" component={renderField} htmlFor="username" labelText="이메일 (* 학교 메일이 아닌 가입 시 입력 하셨던 이메일 주소를 입력해주세요)" type="text" validate={[emailRequired, emailCorrectForm]}/>
<Field name="password" component={renderField} htmlFor="password" labelText="비밀번호" type="password" validate={passwordRequired}/>
<Button style={buttonStyle} type="submit" disabled={submitting} fluid>로그인</Button>
</Form>
Expand Down
1 change: 0 additions & 1 deletion linku_frontend/linku/src/sagas/meeting.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ function* fetchMeetingCardInfos(action){
try{
yield put(actions.requestMeetingCardInfos());
let meetings = [];
meetings.push(yield [call(service.getCurrentMeetingInfos)]);
meetings.push(yield [call(service.getPrearrangedMeetingInfos)]);
yield put(actions.receiveMeetingCardInfos(meetings));
}catch(e){
Expand Down